$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r72074 - in branches/release: boost/geometry boost/geometry/algorithms boost/geometry/algorithms/detail boost/geometry/algorithms/detail/equals boost/geometry/algorithms/detail/overlay boost/geometry/arithmetic boost/geometry/core boost/geometry/domains boost/geometry/geometries boost/geometry/geometries/adapted boost/geometry/iterators boost/geometry/multi boost/geometry/multi/geometries/adapted boost/geometry/policies boost/geometry/strategies boost/geometry/strategies/cartesian boost/geometry/util boost/geometry/views libs/geometry/doc libs/geometry/doc/concept libs/geometry/doc/doxy libs/geometry/doc/doxy/doxygen_input/pages libs/geometry/doc/doxy/doxygen_input/sourcecode libs/geometry/doc/generated libs/geometry/doc/html libs/geometry/doc/reference libs/geometry/doc/reference/views 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/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/detail libs/geometry/test/algorithms/detail/sections libs/geometry/test/algorithms/overlay libs/geometry/test/algorithms/overlay/robustness libs/geometry/test/core libs/geometry/test/geometries libs/geometry/test/iterators libs/geometry/test/multi/algorithms libs/geometry/test/views
From: barend.gehrels_at_[hidden]
Date: 2011-05-22 10:23:56
Author: barendgehrels
Date: 2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
New Revision: 72074
URL: http://svn.boost.org/trac/boost/changeset/72074
Log:
Merging r71820 through r72073
Added:
   branches/release/libs/geometry/doc/reference/views/
      - copied from r71840, /trunk/libs/geometry/doc/reference/views/
   branches/release/libs/geometry/doc/reference/views/box_view.qbk
      - copied unchanged from r71840, /trunk/libs/geometry/doc/reference/views/box_view.qbk
   branches/release/libs/geometry/doc/reference/views/segment_view.qbk
      - copied unchanged from r71840, /trunk/libs/geometry/doc/reference/views/segment_view.qbk
Removed:
   branches/release/boost/geometry/geometries/adapted/boost_array_as_linestring.hpp
   branches/release/boost/geometry/geometries/adapted/boost_array_as_ring.hpp
   branches/release/boost/geometry/geometries/adapted/c_array_as_linestring.hpp
   branches/release/boost/geometry/geometries/adapted/c_array_as_ring.hpp
   branches/release/boost/geometry/geometries/adapted/std_as_linestring.hpp
   branches/release/boost/geometry/geometries/adapted/std_as_ring.hpp
   branches/release/boost/geometry/multi/geometries/adapted/
Properties modified: 
   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   (contents, 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/strategies/   (props changed)
   branches/release/boost/geometry/util/   (props changed)
   branches/release/boost/geometry/views/   (props changed)
   branches/release/libs/geometry/doc/   (props changed)
   branches/release/libs/geometry/doc/Jamfile.v2   (contents, 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   (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   (props changed)
   branches/release/libs/geometry/doc/src/   (props changed)
   branches/release/libs/geometry/example/   (props changed)
   branches/release/libs/geometry/test/   (props changed)
Text files modified: 
   branches/release/boost/geometry/algorithms/detail/equals/collect_vectors.hpp                 |    29 ++++++++++++------                      
   branches/release/boost/geometry/algorithms/detail/overlay/assign_parents.hpp                 |     2 +                                       
   branches/release/boost/geometry/algorithms/detail/overlay/get_intersection_points.hpp        |     2 +                                       
   branches/release/boost/geometry/algorithms/detail/overlay/get_turn_info.hpp                  |     2 +                                       
   branches/release/boost/geometry/algorithms/detail/overlay/get_turns.hpp                      |     1                                         
   branches/release/boost/geometry/algorithms/detail/overlay/handle_tangencies.hpp              |     3 +                                       
   branches/release/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp               |     2 +                                       
   branches/release/boost/geometry/algorithms/detail/partition.hpp                              |     2                                         
   branches/release/boost/geometry/algorithms/equals.hpp                                        |    12 ++------                                
   branches/release/boost/geometry/geometries/geometries.hpp                                    |     6 ---                                     
   branches/release/boost/geometry/geometry.hpp                                                 |     8 -----                                   
   branches/release/boost/geometry/multi/multi.hpp                                              |     3 --                                      
   branches/release/boost/geometry/strategies/cartesian/centroid_weighted_length.hpp            |     7 ++--                                    
   branches/release/boost/geometry/strategies/cartesian/distance_projected_point.hpp            |     5 --                                      
   branches/release/boost/geometry/util/math.hpp                                                |    28 ++++++++++++++----                      
   branches/release/boost/geometry/views/box_view.hpp                                           |    43 +++++++++++++++++++++++-----            
   branches/release/boost/geometry/views/closeable_view.hpp                                     |    14 ++++++--                                
   branches/release/boost/geometry/views/segment_view.hpp                                       |    29 ++++++++++++++-----                     
   branches/release/libs/geometry/doc/Jamfile.v2                                                |    28 ++++++++++++------                      
   branches/release/libs/geometry/doc/concept/linestring.qbk                                    |     5 +--                                     
   branches/release/libs/geometry/doc/doxy/Doxyfile                                             |     4 --                                      
   branches/release/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_pages.hpp                |     6 ----                                    
   branches/release/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_1.cpp               |     1                                         
   branches/release/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_2.cpp               |     5 --                                      
   branches/release/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_3.cpp               |     3 --                                      
   branches/release/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_4.cpp               |     1                                         
   branches/release/libs/geometry/doc/geometry.qbk                                              |    11 +++++++                                 
   branches/release/libs/geometry/doc/imports.qbk                                               |     3 ++                                      
   branches/release/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml_parser.hpp |     3 +                                       
   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   |    41 +++++++++++++++++++++++++++             
   branches/release/libs/geometry/doc/src/examples/algorithms/append.cpp                        |     2                                         
   branches/release/libs/geometry/doc/src/examples/algorithms/area.cpp                          |     3 ++                                      
   branches/release/libs/geometry/doc/src/examples/algorithms/area_with_strategy.cpp            |     3 ++                                      
   branches/release/libs/geometry/doc/src/examples/algorithms/assign.cpp                        |     3 ++                                      
   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            |     3 +                                       
   branches/release/libs/geometry/doc/src/examples/algorithms/assign_inverse.cpp                |     3 +                                       
   branches/release/libs/geometry/doc/src/examples/algorithms/assign_point_from_index.cpp       |     3 +                                       
   branches/release/libs/geometry/doc/src/examples/algorithms/assign_point_to_index.cpp         |     3 +                                       
   branches/release/libs/geometry/doc/src/examples/algorithms/assign_points.cpp                 |     2                                         
   branches/release/libs/geometry/doc/src/examples/algorithms/centroid.cpp                      |     3 +                                       
   branches/release/libs/geometry/doc/src/examples/algorithms/clear.cpp                         |     3 +                                       
   branches/release/libs/geometry/doc/src/examples/algorithms/comparable_distance.cpp           |     1                                         
   branches/release/libs/geometry/doc/src/examples/algorithms/convert.cpp                       |     3 ++                                      
   branches/release/libs/geometry/doc/src/examples/algorithms/convex_hull.cpp                   |     1                                         
   branches/release/libs/geometry/doc/src/examples/algorithms/correct.cpp                       |     1                                         
   branches/release/libs/geometry/doc/src/examples/algorithms/difference.cpp                    |     3 +                                       
   branches/release/libs/geometry/doc/src/examples/algorithms/difference_inserter.cpp           |     3 +                                       
   branches/release/libs/geometry/doc/src/examples/algorithms/distance.cpp                      |     5 ++                                      
   branches/release/libs/geometry/doc/src/examples/algorithms/envelope.cpp                      |     4 ++                                      
   branches/release/libs/geometry/doc/src/examples/algorithms/equals.cpp                        |     2                                         
   branches/release/libs/geometry/doc/src/examples/algorithms/for_each_point.cpp                |     3 +                                       
   branches/release/libs/geometry/doc/src/examples/algorithms/for_each_point_const.cpp          |     3 +                                       
   branches/release/libs/geometry/doc/src/examples/algorithms/for_each_segment_const.cpp        |     3 +                                       
   branches/release/libs/geometry/doc/src/examples/algorithms/intersection_ls_ls_point.cpp      |     5 ++                                      
   branches/release/libs/geometry/doc/src/examples/algorithms/intersection_poly_poly.cpp        |     3 +                                       
   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          |     1                                         
   branches/release/libs/geometry/doc/src/examples/algorithms/make_2d_point.cpp                 |     2                                         
   branches/release/libs/geometry/doc/src/examples/algorithms/make_3d_point.cpp                 |     2                                         
   branches/release/libs/geometry/doc/src/examples/algorithms/make_inverse.cpp                  |     3 +                                       
   branches/release/libs/geometry/doc/src/examples/algorithms/make_with_range.cpp               |     2 +                                       
   branches/release/libs/geometry/doc/src/examples/algorithms/num_geometries.cpp                |     4 +-                                      
   branches/release/libs/geometry/doc/src/examples/algorithms/num_interior_rings.cpp            |     4 +-                                      
   branches/release/libs/geometry/doc/src/examples/algorithms/num_points.cpp                    |     3 +                                       
   branches/release/libs/geometry/doc/src/examples/algorithms/return_envelope.cpp               |     4 ++                                      
   branches/release/libs/geometry/doc/src/examples/algorithms/reverse.cpp                       |     3 +                                       
   branches/release/libs/geometry/doc/src/examples/algorithms/simplify.cpp                      |     3 ++                                      
   branches/release/libs/geometry/doc/src/examples/algorithms/simplify_insert.cpp               |     3 ++                                      
   branches/release/libs/geometry/doc/src/examples/algorithms/simplify_insert_with_strategy.cpp |     3 ++                                      
   branches/release/libs/geometry/doc/src/examples/algorithms/sym_difference.cpp                |     3 +                                       
   branches/release/libs/geometry/doc/src/examples/algorithms/union.cpp                         |     3 +                                       
   branches/release/libs/geometry/doc/src/examples/algorithms/unique.cpp                        |     1                                         
   branches/release/libs/geometry/doc/src/examples/algorithms/within.cpp                        |     3 +                                       
   branches/release/libs/geometry/doc/src/examples/core/closure.cpp                             |     3 ++                                      
   branches/release/libs/geometry/doc/src/examples/core/coordinate_dimension.cpp                |     2 +                                       
   branches/release/libs/geometry/doc/src/examples/core/coordinate_system.cpp                   |     3 ++                                      
   branches/release/libs/geometry/doc/src/examples/core/coordinate_type.cpp                     |     3 ++                                      
   branches/release/libs/geometry/doc/src/examples/core/get_box.cpp                             |     2 +                                       
   branches/release/libs/geometry/doc/src/examples/core/get_point.cpp                           |     2 +                                       
   branches/release/libs/geometry/doc/src/examples/core/interior_type.cpp                       |     3 ++                                      
   branches/release/libs/geometry/doc/src/examples/core/point_order.cpp                         |     3 ++                                      
   branches/release/libs/geometry/doc/src/examples/core/point_type.cpp                          |     4 ++                                      
   branches/release/libs/geometry/doc/src/examples/core/ring_type.cpp                           |     3 ++                                      
   branches/release/libs/geometry/doc/src/examples/core/rings.cpp                               |     3 ++                                      
   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                                 |     2 +                                       
   branches/release/libs/geometry/doc/src/examples/core/tag_cast.cpp                            |     3 ++                                      
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_array.cpp           |     2 +                                       
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/filtered.cpp  |     3 ++                                      
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/reversed.cpp  |     3 ++                                      
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/sliced.cpp    |     2 +                                       
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/strided.cpp   |     2 +                                       
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/uniqued.cpp   |     2 +                                       
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_tuple.cpp           |     2 +                                       
   branches/release/libs/geometry/doc/src/examples/geometries/register/box_templated.cpp        |     2 +                                       
   branches/release/libs/geometry/doc/src/examples/geometries/register/linestring.cpp           |     2 +                                       
   branches/release/libs/geometry/doc/src/examples/geometries/register/linestring_templated.cpp |     2 +                                       
   branches/release/libs/geometry/doc/src/examples/geometries/register/multi_linestring.cpp     |     2 +                                       
   branches/release/libs/geometry/doc/src/examples/geometries/register/multi_polygon.cpp        |     2 +                                       
   branches/release/libs/geometry/doc/src/examples/geometries/register/ring.cpp                 |     2 +                                       
   branches/release/libs/geometry/doc/src/examples/geometries/register/ring_templated.cpp       |     2 +                                       
   branches/release/libs/geometry/doc/src/examples/quick_start.cpp                              |     2 +                                       
   branches/release/libs/geometry/example/01_point_example.cpp                                  |     1                                         
   branches/release/libs/geometry/example/02_linestring_example.cpp                             |    17 ++++++----                              
   branches/release/libs/geometry/example/03_polygon_example.cpp                                |     5 ++-                                     
   branches/release/libs/geometry/example/04_boost_example.cpp                                  |     3 ++                                      
   branches/release/libs/geometry/example/05_a_overlay_polygon_example.cpp                      |     2 +                                       
   branches/release/libs/geometry/example/05_b_overlay_linestring_polygon_example.cpp           |     3 ++                                      
   branches/release/libs/geometry/example/06_a_transformation_example.cpp                       |     5 ++-                                     
   branches/release/libs/geometry/example/06_b_transformation_example.cpp                       |     2 +                                       
   branches/release/libs/geometry/example/07_a_graph_route_example.cpp                          |     1                                         
   branches/release/libs/geometry/example/07_b_graph_route_example.cpp                          |     1                                         
   branches/release/libs/geometry/example/c04_a_custom_triangle_example.cpp                     |     1                                         
   branches/release/libs/geometry/example/c05_custom_point_pointer_example.cpp                  |     8 +++--                                   
   branches/release/libs/geometry/example/c07_custom_ring_pointer_example.cpp                   |     4 ++                                      
   branches/release/libs/geometry/example/with_external_libs/x04_wxwidgets_world_mapper.cpp     |     1                                         
   branches/release/libs/geometry/example/with_external_libs/x05_shapelib_example.cpp           |     1                                         
   branches/release/libs/geometry/example/with_external_libs/x06_qt_world_mapper.cpp            |     1                                         
   branches/release/libs/geometry/test/algorithms/append.cpp                                    |     8 ++--                                    
   branches/release/libs/geometry/test/algorithms/area.cpp                                      |     1                                         
   branches/release/libs/geometry/test/algorithms/centroid.cpp                                  |     1                                         
   branches/release/libs/geometry/test/algorithms/convex_hull.cpp                               |     1                                         
   branches/release/libs/geometry/test/algorithms/detail/partition.cpp                          |     1                                         
   branches/release/libs/geometry/test/algorithms/detail/sections/range_by_section.cpp          |     1                                         
   branches/release/libs/geometry/test/algorithms/detail/sections/sectionalize.cpp              |     2 +                                       
   branches/release/libs/geometry/test/algorithms/difference.cpp                                |     2 +                                       
   branches/release/libs/geometry/test/algorithms/disjoint.cpp                                  |     1                                         
   branches/release/libs/geometry/test/algorithms/distance.cpp                                  |    13 ++++++++                                
   branches/release/libs/geometry/test/algorithms/envelope.cpp                                  |     1                                         
   branches/release/libs/geometry/test/algorithms/equals.cpp                                    |    60 +++++++++++++++++++++++++++++++++++++-- 
   branches/release/libs/geometry/test/algorithms/intersection.cpp                              |     6 +++                                     
   branches/release/libs/geometry/test/algorithms/intersects.cpp                                |     1                                         
   branches/release/libs/geometry/test/algorithms/length.cpp                                    |     1                                         
   branches/release/libs/geometry/test/algorithms/overlaps.cpp                                  |     1                                         
   branches/release/libs/geometry/test/algorithms/overlay/assemble.cpp                          |     1                                         
   branches/release/libs/geometry/test/algorithms/overlay/ccw_traverse.cpp                      |     1                                         
   branches/release/libs/geometry/test/algorithms/overlay/dissolver.cpp                         |     1                                         
   branches/release/libs/geometry/test/algorithms/overlay/get_turn_info.cpp                     |     2 -                                       
   branches/release/libs/geometry/test/algorithms/overlay/relative_order.cpp                    |     2 +                                       
   branches/release/libs/geometry/test/algorithms/overlay/robustness/random_ellipses_stars.cpp  |     2 +                                       
   branches/release/libs/geometry/test/algorithms/overlay/robustness/recursive_polygons.cpp     |     1                                         
   branches/release/libs/geometry/test/algorithms/overlay/robustness/star_comb.cpp              |     1                                         
   branches/release/libs/geometry/test/algorithms/overlay/robustness/test_overlay_p_q.hpp       |     2 +                                       
   branches/release/libs/geometry/test/algorithms/overlay/select_rings.cpp                      |     3 ++                                      
   branches/release/libs/geometry/test/algorithms/overlay/self_intersection_points.cpp          |     2 +                                       
   branches/release/libs/geometry/test/algorithms/overlay/split_rings.cpp                       |     2 +                                       
   branches/release/libs/geometry/test/algorithms/overlay/traverse_gmp.cpp                      |     1                                         
   branches/release/libs/geometry/test/algorithms/perimeter.cpp                                 |     1                                         
   branches/release/libs/geometry/test/algorithms/reverse.cpp                                   |     1                                         
   branches/release/libs/geometry/test/algorithms/simplify.cpp                                  |     2                                         
   branches/release/libs/geometry/test/algorithms/transform.cpp                                 |     1                                         
   branches/release/libs/geometry/test/algorithms/union.cpp                                     |     1                                         
   branches/release/libs/geometry/test/algorithms/unique.cpp                                    |     1                                         
   branches/release/libs/geometry/test/algorithms/within.cpp                                    |     1                                         
   branches/release/libs/geometry/test/core/coordinate_dimension.cpp                            |     8 ++--                                    
   branches/release/libs/geometry/test/core/coordinate_system.cpp                               |     8 ++--                                    
   branches/release/libs/geometry/test/core/coordinate_type.cpp                                 |     8 ++--                                    
   branches/release/libs/geometry/test/core/geometry_id.cpp                                     |     8 ++--                                    
   branches/release/libs/geometry/test/core/point_type.cpp                                      |     8 ++--                                    
   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/adapted.cpp                                   |    47 +++++++++++++++----------------         
   branches/release/libs/geometry/test/geometries/boost_polygon.cpp                             |     8 +++++                                   
   branches/release/libs/geometry/test/geometries/boost_polygon_overlay.cpp                     |     1                                         
   branches/release/libs/geometry/test/geometries/boost_range.cpp                               |     1                                         
   branches/release/libs/geometry/test/geometries/custom_linestring.cpp                         |     6 ++-                                     
   branches/release/libs/geometry/test/iterators/closing_iterator.cpp                           |     1                                         
   branches/release/libs/geometry/test/iterators/ever_circling_iterator.cpp                     |     1                                         
   branches/release/libs/geometry/test/multi/algorithms/multi_area.cpp                          |     2 +                                       
   branches/release/libs/geometry/test/multi/algorithms/multi_centroid.cpp                      |     1                                         
   branches/release/libs/geometry/test/multi/algorithms/multi_convex_hull.cpp                   |     1                                         
   branches/release/libs/geometry/test/multi/algorithms/multi_difference.cpp                    |     1                                         
   branches/release/libs/geometry/test/multi/algorithms/multi_distance.cpp                      |     1                                         
   branches/release/libs/geometry/test/multi/algorithms/multi_envelope.cpp                      |     1                                         
   branches/release/libs/geometry/test/multi/algorithms/multi_equals.cpp                        |     2 +                                       
   branches/release/libs/geometry/test/multi/algorithms/multi_for_each.cpp                      |     1                                         
   branches/release/libs/geometry/test/multi/algorithms/multi_intersection.cpp                  |     1                                         
   branches/release/libs/geometry/test/multi/algorithms/multi_length.cpp                        |     2 +                                       
   branches/release/libs/geometry/test/multi/algorithms/multi_num_geometries.cpp                |     1                                         
   branches/release/libs/geometry/test/multi/algorithms/multi_num_interior_rings.cpp            |     1                                         
   branches/release/libs/geometry/test/multi/algorithms/multi_num_points.cpp                    |     1                                         
   branches/release/libs/geometry/test/multi/algorithms/multi_perimeter.cpp                     |     1                                         
   branches/release/libs/geometry/test/multi/algorithms/multi_reverse.cpp                       |     1                                         
   branches/release/libs/geometry/test/multi/algorithms/multi_simplify.cpp                      |     2 +                                       
   branches/release/libs/geometry/test/multi/algorithms/multi_transform.cpp                     |     1                                         
   branches/release/libs/geometry/test/multi/algorithms/multi_union.cpp                         |     1                                         
   branches/release/libs/geometry/test/multi/algorithms/multi_unique.cpp                        |     1                                         
   branches/release/libs/geometry/test/multi/algorithms/multi_within.cpp                        |     1                                         
   branches/release/libs/geometry/test/ttmath.vsprops                                           |     1                                         
   branches/release/libs/geometry/test/views/box_view.cpp                                       |    23 +++++++++------                         
   branches/release/libs/geometry/test/views/closeable_view.cpp                                 |     1                                         
   branches/release/libs/geometry/test/views/reversible_closeable.cpp                           |     1                                         
   branches/release/libs/geometry/test/views/reversible_view.cpp                                |     1                                         
   branches/release/libs/geometry/test/views/segment_view.cpp                                   |     1                                         
   201 files changed, 643 insertions(+), 227 deletions(-)
Modified: branches/release/boost/geometry/algorithms/detail/equals/collect_vectors.hpp
==============================================================================
--- branches/release/boost/geometry/algorithms/detail/equals/collect_vectors.hpp	(original)
+++ branches/release/boost/geometry/algorithms/detail/equals/collect_vectors.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -14,8 +14,6 @@
 #ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_EQUALS_COLLECT_VECTORS_HPP
 #define BOOST_GEOMETRY_ALGORITHMS_DETAIL_EQUALS_COLLECT_VECTORS_HPP
 
-#include <algorithm>
-#include <deque>
 
 #include <boost/numeric/conversion/cast.hpp>
 #include <boost/range.hpp>
@@ -26,9 +24,8 @@
 #include <boost/geometry/core/cs.hpp>
 #include <boost/geometry/core/interior_rings.hpp>
 #include <boost/geometry/geometries/concepts/check.hpp>
-#include <boost/geometry/strategies/side.hpp>
 
-#include <boost/geometry/util/select_most_precise.hpp>
+#include <boost/geometry/util/math.hpp>
 
 
 
@@ -41,10 +38,10 @@
 {
     typedef T type;
 
-    collected_vector()
+    inline collected_vector()
     {}
 
-    collected_vector(T const& px, T const& py,
+    inline collected_vector(T const& px, T const& py,
             T const& pdx, T const& pdy)
         : x(px)
         , y(py)
@@ -58,7 +55,8 @@
     T dx, dy;
     T dx_0, dy_0;
 
-    bool operator<(collected_vector<T> const& other) const
+    // For sorting
+    inline bool operator<(collected_vector<T> const& other) const
     {
         if (math::equals(x, other.x))
         {
@@ -77,10 +75,15 @@
 
     inline bool same_direction(collected_vector<T> const& other) const
     {
-        return math::equals(dx, other.dx)
-            && math::equals(dy, other.dy);
+        // For high precision arithmetic, we have to be 
+        // more relaxed then using ==
+        // Because 2/sqrt( (0,0)<->(2,2) ) == 1/sqrt( (0,0)<->(1,1) ) 
+        // is not always true (at least, it is not for ttmath)
+        return math::equals_with_epsilon(dx, other.dx)
+            && math::equals_with_epsilon(dy, other.dy);
     }
 
+    // For std::equals
     inline bool operator==(collected_vector<T> const& other) const
     {
         return math::equals(x, other.x)
@@ -145,7 +148,13 @@
                 first = false;
             }
         }
-        // TODO: if first one has same direction as last one, remove first one...
+
+        // If first one has same direction as last one, remove first one
+        if (boost::size(collection) > 1 
+            && collection.front().same_direction(collection.back()))
+        {
+            collection.erase(collection.begin());
+        }
     }
 };
 
Modified: branches/release/boost/geometry/algorithms/detail/overlay/assign_parents.hpp
==============================================================================
--- branches/release/boost/geometry/algorithms/detail/overlay/assign_parents.hpp	(original)
+++ branches/release/boost/geometry/algorithms/detail/overlay/assign_parents.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -16,6 +16,8 @@
 #include <boost/geometry/algorithms/detail/overlay/get_ring.hpp>
 #include <boost/geometry/algorithms/detail/overlay/within_util.hpp>
 
+#include <boost/geometry/geometries/box.hpp>
+
 
 namespace boost { namespace geometry
 {
Modified: branches/release/boost/geometry/algorithms/detail/overlay/get_intersection_points.hpp
==============================================================================
--- branches/release/boost/geometry/algorithms/detail/overlay/get_intersection_points.hpp	(original)
+++ branches/release/boost/geometry/algorithms/detail/overlay/get_intersection_points.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -15,6 +15,8 @@
 #include <boost/geometry/algorithms/convert.hpp>
 #include <boost/geometry/algorithms/detail/overlay/get_turns.hpp>
 
+#include <boost/geometry/geometries/segment.hpp>
+
 
 namespace boost { namespace geometry
 {
Modified: branches/release/boost/geometry/algorithms/detail/overlay/get_turn_info.hpp
==============================================================================
--- branches/release/boost/geometry/algorithms/detail/overlay/get_turn_info.hpp	(original)
+++ branches/release/boost/geometry/algorithms/detail/overlay/get_turn_info.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -17,6 +17,8 @@
 #include <boost/geometry/algorithms/convert.hpp>
 #include <boost/geometry/algorithms/detail/overlay/turn_info.hpp>
 
+#include <boost/geometry/geometries/segment.hpp>
+
 
 namespace boost { namespace geometry
 {
Modified: branches/release/boost/geometry/algorithms/detail/overlay/get_turns.hpp
==============================================================================
--- branches/release/boost/geometry/algorithms/detail/overlay/get_turns.hpp	(original)
+++ branches/release/boost/geometry/algorithms/detail/overlay/get_turns.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -36,6 +36,7 @@
 #include <boost/geometry/views/detail/range_type.hpp>
 
 #include <boost/geometry/geometries/box.hpp>
+#include <boost/geometry/geometries/segment.hpp>
 
 #include <boost/geometry/iterators/ever_circling_iterator.hpp>
 
Modified: branches/release/boost/geometry/algorithms/detail/overlay/handle_tangencies.hpp
==============================================================================
--- branches/release/boost/geometry/algorithms/detail/overlay/handle_tangencies.hpp	(original)
+++ branches/release/boost/geometry/algorithms/detail/overlay/handle_tangencies.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,11 +11,12 @@
 
 #include <algorithm>
 
-
 #include <boost/geometry/algorithms/detail/ring_identifier.hpp>
 #include <boost/geometry/algorithms/detail/overlay/copy_segment_point.hpp>
 #include <boost/geometry/algorithms/detail/overlay/turn_info.hpp>
 
+#include <boost/geometry/geometries/segment.hpp>
+
 
 namespace boost { namespace geometry
 {
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -21,6 +21,8 @@
 #include <boost/geometry/algorithms/detail/disjoint.hpp>
 #include <boost/geometry/algorithms/detail/overlay/get_turns.hpp>
 
+#include <boost/geometry/geometries/box.hpp>
+
 
 namespace boost { namespace geometry
 {
Modified: branches/release/boost/geometry/algorithms/detail/partition.hpp
==============================================================================
--- branches/release/boost/geometry/algorithms/detail/partition.hpp	(original)
+++ branches/release/boost/geometry/algorithms/detail/partition.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -79,7 +79,7 @@
 }
 
 
-// Match collection 1 with collection 2
+// Match collection with itself
 template <typename InputCollection, typename Policy>
 static inline void handle_one(InputCollection const& collection,
         index_vector_type const& input,
Modified: branches/release/boost/geometry/algorithms/equals.hpp
==============================================================================
--- branches/release/boost/geometry/algorithms/equals.hpp	(original)
+++ branches/release/boost/geometry/algorithms/equals.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -15,9 +15,7 @@
 #define BOOST_GEOMETRY_ALGORITHMS_EQUALS_HPP
 
 
-
 #include <cstddef>
-#include <deque>
 #include <vector>
 
 #include <boost/mpl/if.hpp>
@@ -88,7 +86,7 @@
     {
         return geometry::math::equals(
                 geometry::area(geometry1),
-                geometry::area(geometry1));
+                geometry::area(geometry2));
     }
 };
 
@@ -100,7 +98,7 @@
     {
         return geometry::math::equals(
                 geometry::length(geometry1),
-                geometry::length(geometry1));
+                geometry::length(geometry2));
     }
 };
 
@@ -135,15 +133,11 @@
             return false;
         }
 
-        // Check where direction is NOT changing
-
         std::sort(c1.begin(), c1.end());
         std::sort(c2.begin(), c2.end());
 
         // Just check if these vectors are equal.
-        return c1.size() == c2.size()
-            && std::equal(c1.begin(), c1.end(), c2.begin());
-
+        return std::equal(c1.begin(), c1.end(), c2.begin());
     }
 };
 
Deleted: branches/release/boost/geometry/geometries/adapted/boost_array_as_linestring.hpp
==============================================================================
--- branches/release/boost/geometry/geometries/adapted/boost_array_as_linestring.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
+++ (empty file)
@@ -1,87 +0,0 @@
-// Boost.Geometry (aka GGL, Generic Geometry Library)
-
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
-
-// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
-// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
-
-// Use, modification and distribution is subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_GEOMETRY_GEOMETRIES_ADAPTED_BOOST_ARRAY_AS_LINESTRING_HPP
-#define BOOST_GEOMETRY_GEOMETRIES_ADAPTED_BOOST_ARRAY_AS_LINESTRING_HPP
-
-
-#ifdef BOOST_GEOMETRY_ADAPTED_BOOST_ARRAY_TAG_DEFINED
-#error Include either "boost_array_as_point" or \
-    "boost_array_as_linestring" or "boost_array_as_ring" \
-    or "boost_array_as_multi_point" to adapt a boost_array
-#endif
-
-#define BOOST_GEOMETRY_ADAPTED_BOOST_ARRAY_TAG_DEFINED
-
-
-#include <cstddef>
-#include <boost/mpl/assert.hpp>
-
-#include <boost/array.hpp>
-
-#include <boost/geometry/core/mutable_range.hpp>
-#include <boost/geometry/core/tag.hpp>
-#include <boost/geometry/core/tags.hpp>
-
-
-namespace boost { namespace geometry
-{
-
-
-#ifndef DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-namespace traits
-{
-
-template <typename Point, std::size_t PointCount>
-struct tag< boost::array<Point, PointCount> >
-{
-    typedef linestring_tag type;
-};
-
-// boost::array is immutable with respect to size
-// Therefore, prohibit compilation
-template <typename Point, std::size_t PointCount>
-struct clear< boost::array<Point, PointCount> >
-{
-    BOOST_MPL_ASSERT_MSG
-        (
-            false, NOT_IMPLEMENTED_FOR_BOOST_ARRAY_OF, (types<Point>)
-        );
-};
-
-template <typename Point, std::size_t PointCount>
-struct resize< boost::array<Point, PointCount> >
-{
-    BOOST_MPL_ASSERT_MSG
-        (
-            false, NOT_IMPLEMENTED_FOR_BOOST_ARRAY_OF, (types<Point>)
-        );
-};
-
-template <typename Point, std::size_t PointCount>
-struct push_back< boost::array<Point, PointCount> >
-{
-    BOOST_MPL_ASSERT_MSG
-        (
-            false, NOT_IMPLEMENTED_FOR_BOOST_ARRAY_OF, (types<Point>)
-        );
-};
-
-}
-#endif
-
-
-}} // namespace boost::geometry
-
-
-#endif // BOOST_GEOMETRY_GEOMETRIES_ADAPTED_BOOST_ARRAY_AS_LINESTRING_HPP
Deleted: branches/release/boost/geometry/geometries/adapted/boost_array_as_ring.hpp
==============================================================================
--- branches/release/boost/geometry/geometries/adapted/boost_array_as_ring.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
+++ (empty file)
@@ -1,56 +0,0 @@
-// Boost.Geometry (aka GGL, Generic Geometry Library)
-
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
-
-// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
-// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
-
-// Use, modification and distribution is subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_GEOMETRY_GEOMETRIES_ADAPTED_BOOST_ARRAY_AS_RING_HPP
-#define BOOST_GEOMETRY_GEOMETRIES_ADAPTED_BOOST_ARRAY_AS_RING_HPP
-
-
-#ifdef BOOST_GEOMETRY_ADAPTED_BOOST_ARRAY_TAG_DEFINED
-#error Include either "boost_array_as_point" or \
-    "boost_array_as_linestring" or "boost_array_as_ring" \
-    or "boost_array_as_multi_point" to adapt a boost_array
-#endif
-
-#define BOOST_GEOMETRY_ADAPTED_BOOST_ARRAY_TAG_DEFINED
-
-
-#include <cstddef>
-
-#include <boost/array.hpp>
-
-#include <boost/geometry/core/tag.hpp>
-#include <boost/geometry/core/tags.hpp>
-
-
-namespace boost { namespace geometry
-{
-
-
-#ifndef DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-namespace traits
-{
-
-    template <typename PointType, std::size_t DimensionCount>
-    struct tag< boost::array<PointType, DimensionCount> >
-    {
-        typedef ring_tag type;
-    };
-
-}
-#endif
-
-
-}} // namespace boost::geometry
-
-
-#endif // BOOST_GEOMETRY_GEOMETRIES_ADAPTED_BOOST_ARRAY_AS_RING_HPP
Deleted: branches/release/boost/geometry/geometries/adapted/c_array_as_linestring.hpp
==============================================================================
--- branches/release/boost/geometry/geometries/adapted/c_array_as_linestring.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
+++ (empty file)
@@ -1,51 +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_AS_LINESTRING_HPP
-#define BOOST_GEOMETRY_GEOMETRIES_ADAPTED_C_ARRAY_AS_LINESTRING_HPP
-
-
-#ifdef BOOST_GEOMETRY_ADAPTED_C_ARRAY_AS_POINT_COLLECTION_TAG_DEFINED
-#error Include either "c_array_as_linestring" or "c_array_as_ring" \
-    or "c_array_as_multi_point" to adapt a c array
-#endif
-
-#define BOOST_GEOMETRY_ADAPTED_C_ARRAY_AS_POINT_COLLECTION_TAG_DEFINED
-
-
-#include <cstddef>
-
-#include <boost/geometry/core/tag.hpp>
-#include <boost/geometry/core/tags.hpp>
-
-namespace boost { namespace geometry
-{
-
-
-#ifndef DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-namespace traits
-{
-
-    template <typename T, std::size_t PointCount, std::size_t DimensionCount>
-    struct tag< T[PointCount][DimensionCount] >
-    {
-        typedef linestring_tag type;
-    };
-
-} // namespace traits
-#endif // DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-
-
-}} // namespace boost::geometry
-
-#endif // BOOST_GEOMETRY_GEOMETRIES_ADAPTED_C_ARRAY_AS_LINESTRING_HPP
Deleted: branches/release/boost/geometry/geometries/adapted/c_array_as_ring.hpp
==============================================================================
--- branches/release/boost/geometry/geometries/adapted/c_array_as_ring.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
+++ (empty file)
@@ -1,51 +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_AS_RING_HPP
-#define BOOST_GEOMETRY_GEOMETRIES_ADAPTED_C_ARRAY_AS_RING_HPP
-
-
-#ifdef BOOST_GEOMETRY_ADAPTED_C_ARRAY_AS_POINT_COLLECTION_TAG_DEFINED
-#error Include either "c_array_as_linestring" or "c_array_as_ring" \
-    or "c_array_as_multi_point" to adapt a c array
-#endif
-
-#define BOOST_GEOMETRY_ADAPTED_C_ARRAY_AS_POINT_COLLECTION_TAG_DEFINED
-
-
-#include <cstddef>
-
-#include <boost/geometry/core/tag.hpp>
-#include <boost/geometry/core/tags.hpp>
-
-namespace boost { namespace geometry
-{
-
-
-#ifndef DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-namespace traits
-{
-
-    template <typename T, std::size_t PointCount, std::size_t DimensionCount>
-    struct tag< T[PointCount][DimensionCount] >
-    {
-        typedef ring_tag type;
-    };
-
-} // namespace traits
-#endif // DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-
-
-}} // namespace boost::geometry
-
-#endif // BOOST_GEOMETRY_GEOMETRIES_ADAPTED_C_ARRAY_AS_RING_HPP
Deleted: branches/release/boost/geometry/geometries/adapted/std_as_linestring.hpp
==============================================================================
--- branches/release/boost/geometry/geometries/adapted/std_as_linestring.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
+++ (empty file)
@@ -1,72 +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_STD_AS_LINESTRING_HPP
-#define BOOST_GEOMETRY_GEOMETRIES_ADAPTED_STD_AS_LINESTRING_HPP
-
-
-#ifdef BOOST_GEOMETRY_ADAPTED_STD_AS_POINT_COLLECTION_TAG_DEFINED
-#error Include either "std_as_linestring" or "std_as_ring" \
-    or "std_as_multi_point" to adapt the std:: containers
-#endif
-
-#define BOOST_GEOMETRY_ADAPTED_STD_AS_POINT_COLLECTION_TAG_DEFINED
-
-
-#include <vector>
-#include <deque>
-#include <list>
-#include <utility>
-
-
-#include <boost/geometry/core/access.hpp>
-#include <boost/geometry/core/mutable_range.hpp>
-#include <boost/geometry/core/tag.hpp>
-#include <boost/geometry/core/tags.hpp>
-
-
-namespace boost { namespace geometry
-{
-
-
-#ifndef DOXYGEN_NO_DETAIL
-namespace util
-{
-    struct std_as_linestring
-    {
-        typedef linestring_tag type;
-    };
-
-}
-#endif
-
-
-#ifndef DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-namespace traits
-{
-    // specialization for an iterator pair (read only)
-    template <typename P> struct tag< std::pair<P, P> > : util::std_as_linestring {};
-
-    // specializations for the std:: containers: vector, deque, list
-    template <typename P> struct tag< std::vector<P> > : util::std_as_linestring {};
-    template <typename P> struct tag< std::deque<P> > : util::std_as_linestring {};
-    template <typename P> struct tag< std::list<P> > : util::std_as_linestring {};
-
-}
-#endif
-
-
-}} // namespace boost::geometry
-
-
-#endif // BOOST_GEOMETRY_GEOMETRIES_ADAPTED_STD_AS_LINESTRING_HPP
Deleted: branches/release/boost/geometry/geometries/adapted/std_as_ring.hpp
==============================================================================
--- branches/release/boost/geometry/geometries/adapted/std_as_ring.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
+++ (empty file)
@@ -1,54 +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_STD_AS_RING_HPP
-#define BOOST_GEOMETRY_GEOMETRIES_ADAPTED_STD_AS_RING_HPP
-
-
-#ifdef BOOST_GEOMETRY_ADAPTED_STD_AS_POINT_COLLECTION_TAG_DEFINED
-#error Include either "std_as_linestring" or "std_as_ring" \
-    or "std_as_multi_point" to adapt the std:: containers
-#endif
-
-#define BOOST_GEOMETRY_ADAPTED_STD_AS_POINT_COLLECTION_TAG_DEFINED
-
-
-#include <vector>
-#include <deque>
-#include <list>
-#include <utility>
-
-#include <boost/geometry/core/tags.hpp>
-
-namespace boost { namespace geometry
-{
-
-
-#ifndef DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-namespace traits
-{
-    // specialization for an iterator pair
-    template <typename T> struct tag< std::pair<T, T> > { typedef ring_tag type; };
-
-    // specialization for the std:: containers: vector, deque, list
-    template <typename T> struct tag< std::vector<T> > { typedef ring_tag type; };
-    template <typename T> struct tag< std::deque<T> > { typedef ring_tag type; };
-    template <typename T> struct tag< std::list<T> > { typedef ring_tag type; };
-}
-#endif
-
-
-}} // namespace boost::geometry
-
-
-#endif // BOOST_GEOMETRY_GEOMETRIES_ADAPTED_STD_AS_RING_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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -14,16 +14,12 @@
 #ifndef BOOST_GEOMETRY_GEOMETRIES_HPP
 #define BOOST_GEOMETRY_GEOMETRIES_HPP
 
-#include <boost/geometry/geometries/adapted/c_array.hpp>
-#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
-
 #include <boost/geometry/geometries/point.hpp>
-#include <boost/geometry/geometries/point_xy.hpp>
-#include <boost/geometry/geometries/ring.hpp>
 #include <boost/geometry/geometries/linestring.hpp>
 #include <boost/geometry/geometries/polygon.hpp>
 
 #include <boost/geometry/geometries/box.hpp>
+#include <boost/geometry/geometries/ring.hpp>
 #include <boost/geometry/geometries/segment.hpp>
 
 #endif // BOOST_GEOMETRY_GEOMETRIES_HPP
Modified: branches/release/boost/geometry/geometry.hpp
==============================================================================
--- branches/release/boost/geometry/geometry.hpp	(original)
+++ branches/release/boost/geometry/geometry.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -65,14 +65,6 @@
 #include <boost/geometry/algorithms/unique.hpp>
 #include <boost/geometry/algorithms/within.hpp>
 
-// Include provided geometries
-#include <boost/geometry/geometries/point.hpp>
-#include <boost/geometry/geometries/linestring.hpp>
-#include <boost/geometry/geometries/ring.hpp>
-#include <boost/geometry/geometries/polygon.hpp>
-#include <boost/geometry/geometries/segment.hpp>
-#include <boost/geometry/geometries/box.hpp>
-
 // Include multi a.o. because it can give weird effects
 // if you don't (e.g. area=0 of a multipolygon)
 #include <boost/geometry/multi/multi.hpp>
Modified: branches/release/boost/geometry/multi/multi.hpp
==============================================================================
--- branches/release/boost/geometry/multi/multi.hpp	(original)
+++ branches/release/boost/geometry/multi/multi.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -58,9 +58,6 @@
 #include <boost/geometry/multi/algorithms/detail/overlay/get_turns.hpp>
 #include <boost/geometry/multi/algorithms/detail/overlay/self_turn_points.hpp>
 
-#include <boost/geometry/multi/geometries/multi_point.hpp>
-#include <boost/geometry/multi/geometries/multi_linestring.hpp>
-#include <boost/geometry/multi/geometries/multi_polygon.hpp>
 #include <boost/geometry/multi/geometries/concepts/check.hpp>
 #include <boost/geometry/multi/geometries/concepts/multi_point_concept.hpp>
 #include <boost/geometry/multi/geometries/concepts/multi_linestring_concept.hpp>
Modified: branches/release/boost/geometry/strategies/cartesian/centroid_weighted_length.hpp
==============================================================================
--- branches/release/boost/geometry/strategies/cartesian/centroid_weighted_length.hpp	(original)
+++ branches/release/boost/geometry/strategies/cartesian/centroid_weighted_length.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -15,18 +15,17 @@
 
 #include <boost/geometry/algorithms/distance.hpp>
 #include <boost/geometry/arithmetic/arithmetic.hpp>
-#include <boost/geometry/geometries/point.hpp>
 #include <boost/geometry/util/select_most_precise.hpp>
 #include <boost/geometry/strategies/centroid.hpp>
 #include <boost/geometry/strategies/default_distance_result.hpp>
 
+// Helper geometry
+#include <boost/geometry/geometries/point.hpp>
+
 
 namespace boost { namespace geometry
 {
 
-// Note: when calling the namespace "centroid", it sometimes,
-// somehow, in gcc, gives compilation problems (confusion with function centroid).
-
 namespace strategy { namespace centroid
 {
 
Modified: branches/release/boost/geometry/strategies/cartesian/distance_projected_point.hpp
==============================================================================
--- branches/release/boost/geometry/strategies/cartesian/distance_projected_point.hpp	(original)
+++ branches/release/boost/geometry/strategies/cartesian/distance_projected_point.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -33,11 +33,8 @@
 
 #include <boost/geometry/util/select_coordinate_type.hpp>
 
-
-
-// Helper geometries
+// Helper geometry (projected point on line)
 #include <boost/geometry/geometries/point.hpp>
-#include <boost/geometry/geometries/segment.hpp>
 
 
 namespace boost { namespace geometry
Modified: branches/release/boost/geometry/util/math.hpp
==============================================================================
--- branches/release/boost/geometry/util/math.hpp	(original)
+++ branches/release/boost/geometry/util/math.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -32,27 +32,31 @@
 {
 
 
-template <typename T, bool Floating>
+template <typename Type, bool IsFloatingPoint>
 struct equals
 {
-    static inline bool apply(T const& a, T const& b)
+    static inline bool apply(Type const& a, Type const& b)
     {
         return a == b;
     }
 };
 
-template <typename T>
-struct equals<T, true>
+template <typename Type>
+struct equals<Type, true>
 {
-    static inline bool apply(T const& a, T const& b)
+    static inline bool apply(Type const& a, Type const& b)
     {
         // See http://www.parashift.com/c++-faq-lite/newbie.html#faq-29.17,
         // FUTURE: replace by some boost tool or boost::test::close_at_tolerance
-        return std::abs(a - b) <= std::numeric_limits<T>::epsilon() * std::abs(a);
+        return std::abs(a - b) <= std::numeric_limits<Type>::epsilon() * std::abs(a);
     }
 };
 
 
+template <typename Type, bool IsFloatingPoint> 
+struct equals_with_epsilon : public equals<Type, IsFloatingPoint> {};
+
+
 /*!
 \brief Short construct to enable partial specialization for PI, currently not possible in Math.
 */
@@ -101,6 +105,18 @@
         >::apply(a, b);
 }
 
+template <typename T1, typename T2>
+inline bool equals_with_epsilon(T1 const& a, T2 const& b)
+{
+    typedef typename select_most_precise<T1, T2>::type select_type;
+    return detail::equals_with_epsilon
+        <
+            select_type, 
+            boost::is_floating_point<select_type>::type::value
+        >::apply(a, b);
+}
+
+
 
 double const d2r = geometry::math::pi<double>() / 180.0;
 double const r2d = 1.0 / d2r;
Modified: branches/release/boost/geometry/views/box_view.hpp
==============================================================================
--- branches/release/boost/geometry/views/box_view.hpp	(original)
+++ branches/release/boost/geometry/views/box_view.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -27,9 +27,20 @@
 
 
 /*!
-\brief Range, walking over the four points of a box
-\tparam Box box type
+\brief Makes a box behave like a ring or a range
+\details Adapts a box to the Boost.Range concept, enabling the user to iterating
+    box corners. The box_view is registered as a Ring Concept
+\tparam Box \tparam_geometry{Box}
+\tparam Clockwise If true, walks in clockwise direction, otherwise
+    it walks in counterclockwise direction
 \ingroup views
+
+\qbk{before.synopsis,
+[heading Model of]
+[link geometry.reference.concepts.concept_ring Ring Concept]
+}
+
+\qbk{[include reference/views/box_view.qbk]}
 */
 template <typename Box, bool Clockwise = true>
 struct box_view 
@@ -41,6 +52,7 @@
 {
     typedef typename geometry::point_type<Box>::type point_type;
     
+    /// Constructor accepting the box to adapt
     explicit box_view(Box const& box)
         : detail::points_view<point_type, 5>(copy_policy(box))
     {}
@@ -60,7 +72,7 @@
             points[4] = points[0];
         }
     private :
-        Box m_box;
+        Box const& m_box;
     };
 
 };
@@ -71,11 +83,26 @@
 // All views on boxes are handled as rings
 namespace traits
 {
-    template<typename Box, bool Clockwise>
-    struct tag<box_view<Box, Clockwise> >
-    {
-        typedef ring_tag type;
-    };
+
+template<typename Box, bool Clockwise>
+struct tag<box_view<Box, Clockwise> >
+{
+    typedef ring_tag type;
+};
+
+template<typename Box>
+struct point_order<box_view<Box, false> >
+{
+    static order_selector const value = counterclockwise;
+};
+
+
+template<typename Box>
+struct point_order<box_view<Box, true> >
+{
+    static order_selector const value = clockwise;
+};
+
 }
 
 #endif // DOXYGEN_NO_TRAITS_SPECIALIZATIONS
Modified: branches/release/boost/geometry/views/closeable_view.hpp
==============================================================================
--- branches/release/boost/geometry/views/closeable_view.hpp	(original)
+++ branches/release/boost/geometry/views/closeable_view.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -41,7 +41,6 @@
         : m_range(r)
     {}
 
-
     typedef closing_iterator<Range> iterator;
     typedef closing_iterator<Range const> const_iterator;
 
@@ -60,9 +59,16 @@
 
 
 /*!
-\brief View on a range, either closing or not closing
-\tparam Range original range
-\tparam Close specifying if it should be closed or not
+\brief View on a range, either closing it or leaving it as it is
+\details The closeable_view is used internally by the library to handle all rings,
+    either closed or open, the same way. The default method is closed, all 
+    algorithms process rings as if they are closed. Therefore, if they are opened,
+    a view is created which closes them.
+    The closeable_view might be used by library users, but its main purpose is
+    internally.
+\tparam Range Original range
+\tparam Close Specifies if it the range is closed, if so, nothing will happen.
+    If it is open, it will iterate the first point after the last point.
 \ingroup views
 */
 template <typename Range, closure_selector Close>
Modified: branches/release/boost/geometry/views/segment_view.hpp
==============================================================================
--- branches/release/boost/geometry/views/segment_view.hpp	(original)
+++ branches/release/boost/geometry/views/segment_view.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -27,9 +27,19 @@
 
 
 /*!
-\brief Range, walking over the two points of a segment
-\tparam Segment segment type
+\brief Makes a segment behave like a linestring or a range
+\details Adapts a segment to the Boost.Range concept, enabling the user to 
+    iterate the two segment points. The segment_view is registered as a LineString Concept
+\tparam Segment \tparam_geometry{Segment}
 \ingroup views
+
+\qbk{before.synopsis,
+[heading Model of]
+[link geometry.reference.concepts.concept_linestring LineString Concept]
+}
+
+\qbk{[include reference/views/segment_view.qbk]}
+
 */
 template <typename Segment>
 struct segment_view
@@ -41,6 +51,7 @@
 {
     typedef typename geometry::point_type<Segment>::type point_type;
     
+    /// Constructor accepting the segment to adapt
     explicit segment_view(Segment const& segment)
         : detail::points_view<point_type, 2>(copy_policy(segment))
     {}
@@ -60,7 +71,7 @@
             geometry::detail::assign_point_from_index<1>(m_segment, points[1]);
         }
     private :
-        Segment m_segment;
+        Segment const& m_segment;
     };
 
 };
@@ -71,11 +82,13 @@
 // All segment ranges can be handled as linestrings
 namespace traits
 {
-    template<typename Segment>
-    struct tag<segment_view<Segment> >
-    {
-        typedef linestring_tag type;
-    };
+
+template<typename Segment>
+struct tag<segment_view<Segment> >
+{
+    typedef linestring_tag type;
+};
+
 }
 
 #endif // DOXYGEN_NO_TRAITS_SPECIALIZATIONS
Modified: branches/release/libs/geometry/doc/Jamfile.v2
==============================================================================
--- branches/release/libs/geometry/doc/Jamfile.v2	(original)
+++ branches/release/libs/geometry/doc/Jamfile.v2	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,21 +11,29 @@
 
 project geometry/doc ;
 
+using auto-index ; 
+
 import boostbook ;
 import quickbook ;
 
 
 boostbook geometry 
-	: geometry.qbk
-	: <dependency>Jamfile.v2	  
-		<dependency>quickref.xml
-		<dependency>generated/point.qbk
+    : geometry.qbk
+    : <dependency>Jamfile.v2
+        <dependency>quickref.xml
+        <dependency>generated/point.qbk
         : <xsl:param>chunk.section.depth=4
-	<xsl:param>chunk.first.sections=1
-	<xsl:param>toc.section.depth=3
-	<xsl:param>toc.max.depth=2
-	<xsl:param>generate.section.toc.level=4
-	<xsl:param>boost.root=../../../..
-	;
+    <auto-index>off
+    <auto-index-internal>on
+    <auto-index-verbose>off
+    <xsl:param>index.on.type=1
+    <format>html
+    <xsl:param>chunk.first.sections=1
+    <xsl:param>toc.section.depth=3
+    <xsl:param>toc.max.depth=2
+    <xsl:param>generate.section.toc.level=4
+    <xsl:param>boost.root=../../../..
+    <quickbook-define>enable_index
+    ;
 
 
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -29,8 +29,7 @@
 
 [heading Available Models]	
 * [link geometry.reference.models.model_linestring model::linestring]
-* a std::vector (requires `#include boost/geometry/geometries/adapted/std_as_linestring.hpp>`)
-* a std::deque (requires `#include boost/geometry/geometries/adapted/std_as_linestring.hpp>`)
-
+* a std::vector (requires registration)
+* a std::deque (requires registration)
 
 [endsect]
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -61,7 +61,7 @@
                         tparam_functor="Function or class with operator()" \
                         tparam_output_collection="output collection, either a multi-geometry, or a std::vector<Geometry> / std::deque<Geometry> etc" \
                         tparam_geometry="Any type fulfilling a Geometry Concept" \
-			tparam_geometry{1}="A type fulfilling a \1 Concept" \
+			tparam_geometry{1}="A type fulfilling the \1 Concept" \
                         tparam_index_required="Index, this template parameter is required. For a Box: either min_corner or max_corner. For a Segment: either 0 or 1 for first or last point." \
                         tparam_numeric="numerical type (int, double, ttmath, ...)" \
                         tparam_out{1}="A valid output iterator type, accepting geometries of \1 Concept" \
@@ -192,7 +192,6 @@
                         ../../../../boost/geometry/multi/geometries \
                         ../../../../boost/geometry/multi/geometries/register \
                         ../../../../boost/geometry/multi/geometries/concepts \
-			../../../../boost/geometry/multi/iterators \
                         ../../../../boost/geometry/multi/strategies/cartesian \
                         ../../../../boost/geometry/policies \
                         ../../../../boost/geometry/policies/relate \
@@ -204,7 +203,6 @@
                         ../../../../boost/geometry/strategies/transform \
                         ../../../../boost/geometry/util \
                         ../../../../boost/geometry/views \
-			../../../../boost/geometry/extensions/io/svg \
                         ./doxygen_input/pages \
                         ./doxygen_input/groups
 INPUT_ENCODING         = UTF-8
Modified: branches/release/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_pages.hpp
==============================================================================
--- branches/release/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_pages.hpp	(original)
+++ branches/release/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_pages.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -131,12 +131,6 @@
 - \#include <boost/geometry/geometries/register/box.hpp> macro's for box registration
 
 
-If you are using standard containers containing points and want to handle them as a linestring
-- \#include <boost/geometry/geometries/adapted/std_as_linestring.hpp> allows you to use things like \c std::vector<point_2d>
-  and put them as parameters into algorithms.
-
-If you are using boost tuples and want to handle them as Cartesian points
-- \#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
 
 
 \section extension_includes Extensions
Modified: branches/release/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_1.cpp
==============================================================================
--- branches/release/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_1.cpp	(original)
+++ branches/release/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_1.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -20,7 +20,6 @@
 #include <boost/geometry/geometry.hpp>
 #include <boost/geometry/geometries/register/point.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/std_as_linestring.hpp>
 
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
Modified: branches/release/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_2.cpp
==============================================================================
--- branches/release/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_2.cpp	(original)
+++ branches/release/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_2.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -20,11 +20,8 @@
 #include <boost/geometry/geometry.hpp>
 #include <boost/geometry/algorithms/overlaps.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/cartesian2d.hpp>
+#include <boost/geometry/geometries/point_xy.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>
 
 
 // Small QRect simulations following http://doc.trolltech.com/4.4/qrect.html
Modified: branches/release/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_3.cpp
==============================================================================
--- branches/release/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_3.cpp	(original)
+++ branches/release/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_3.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,9 +13,6 @@
 #include <boost/foreach.hpp>
 
 #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/std_as_linestring.hpp>
 
 
 
Modified: branches/release/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_4.cpp
==============================================================================
--- branches/release/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_4.cpp	(original)
+++ branches/release/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_4.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,6 +13,7 @@
 #include <fstream>
 
 #include <boost/geometry/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 #include <boost/geometry/multi/multi.hpp>
 
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -72,6 +72,7 @@
 [def __boost_range__ Boost.Range]
 [def __boost_tuple__ Boost.Tuple]
 [def __boost_gil__ [@http://www.boost.org/libs/gil/ Boost.GIL]]
+[def __boost_bb__ Boost.Build]
 
 [def __ttmath__ [@http://www.ttmath.org/ ttmath]]
 [def __ogc__ [@http://www.opengeospatial.org OGC]]
@@ -91,7 +92,17 @@
 [include quickstart.qbk]
 
 [include design_rationale.qbk]
+[include compiling.qbk]
+
+[section Indexes] 
 [include matrix.qbk]
+[section Alphabetical Index]
+'''<index><title/></index>'''
+[endsect]
+[endsect] 
+
 [include reference.qbk]
+
+
 [include about_documentation.qbk]
 [include acknowledgments.qbk]
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -103,3 +103,6 @@
 
 [import src/examples/geometries/register/multi_linestring.cpp]
 [import src/examples/geometries/register/multi_polygon.cpp]
+
+[import src/examples/views/box_view.cpp]
+[import src/examples/views/segment_view.cpp]
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -108,12 +108,13 @@
     // #define: <param><defname>Point</defname></param>
     // template: <param><type>typename</type><declname>CoordinateType</declname><defname>CoordinateType</defname></param>
     // template with default: <param><type>typename</type><declname>CoordinateSystem</declname><defname>CoordinateSystem</defname><defval><ref ....>cs::cartesian</ref></defval></param>
+    // with enum: <type><ref refid="group__enum_1ga7d33eca9a5389952bdf719972eb802b6" kindref="member">closure_selector</ref></type>
     if (node != NULL)
     {
         std::string name = node->name();
         if (name == "type")
         {
-            p.fulltype = node->value();
+            get_contents(node->first_node(), p.fulltype);
             p.type = p.fulltype;
             boost::replace_all(p.type, " const", "");
             boost::trim(p.type);
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-22 10:23:38 EDT (Sun, 22 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/structboost_1_1geometry_1_1tag.xml
+xml=../../../../doxy/doxygen_output/xml/structboost_1_1geometry_1_1closeable__view.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -118,6 +118,10 @@
         {
             out << ")";
         }
+        else if (f.type != function_define)
+        {
+            out << "()";
+        }
     }
 
     out << "``" 
@@ -285,6 +289,33 @@
         ;
 }
 
+inline void quickbook_output_indexterm(std::string const& term, std::ostream& out
+            //, std::string const& secondary = ""
+            )
+{
+    out << "'''";
+    if (boost::contains(term, "::"))
+    {
+        // "Unnamespace" it and add all terms (also namespaces)
+        std::vector<std::string> splitted;
+        boost::split(splitted, boost::replace_all_copy(term, "::", ":")
+                , boost::is_any_of(":"), boost::token_compress_on);
+        BOOST_FOREACH(std::string const& part, splitted)
+        {
+            out << "<indexterm><primary>" << part << "</primary></indexterm>";
+        }
+    }
+    else
+    {
+        out << "<indexterm><primary>" << term;
+        /*if (! secondary.empty())
+        {
+            out << "<secondary>" << secondary << "</secondary>";
+        }*/
+        out << "</primary></indexterm>";
+    }
+    out << "'''" << std::endl;
+}
 
 void quickbook_output(function const& f, configuration const& config, std::ostream& out)
 {
@@ -315,6 +346,8 @@
         << "]" << std::endl
         << std::endl;
 
+    quickbook_output_indexterm(f.name, out);
+        
     out << qbk_escaped(f.brief_description) << std::endl;
     out << std::endl;
 
@@ -393,6 +426,12 @@
         << "]" << std::endl
         << std::endl;
 
+    quickbook_output_indexterm(e.name, out);
+    BOOST_FOREACH(enumeration_value const& value, e.enumeration_values)
+    {
+        quickbook_output_indexterm(value.name, out);
+    }
+
     out << e.brief_description << std::endl;
     out << std::endl;
 
@@ -465,6 +504,8 @@
     out << "[section:" << to_section_name(short_name) << " " << short_name << "]" << std::endl
         << std::endl;
 
+    quickbook_output_indexterm(short_name, out);
+
     out << cos.brief_description << std::endl;
     out << std::endl;
 
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -15,7 +15,7 @@
 #include <boost/assign.hpp>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,7 +11,10 @@
 //` Calculate the area of a polygon
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,7 +11,10 @@
 //` Calculate the area of a polygon
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,6 +13,9 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/box.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -14,7 +14,7 @@
 #include <iomanip>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 #if defined(HAVE_TTMATH)
 #  include <boost/geometry/extensions/contrib/ttmath_stub.hpp>
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -14,7 +14,7 @@
 #include <iomanip>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,7 +13,8 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/box.hpp>
+#include <boost/geometry/geometries/point_xy.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,7 +13,8 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/box.hpp>
+#include <boost/geometry/geometries/point.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,7 +13,8 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/segment.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,7 +13,8 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/box.hpp>
+#include <boost/geometry/geometries/point_xy.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,7 +13,7 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/linestring.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 #include <boost/assign.hpp>
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -14,7 +14,8 @@
 #include <list>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 /*<-*/ #include "create_svg_two.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,7 +13,8 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
+#include <boost/geometry/geometries/ring.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,6 +13,7 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,6 +13,9 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/box.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,6 +13,7 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,6 +13,7 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -14,7 +14,8 @@
 #include <list>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
 #include <boost/foreach.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -14,7 +14,8 @@
 #include <vector>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
 #include <boost/foreach.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -14,8 +14,11 @@
 #include <list>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/linestring.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/multi/geometries/multi_point.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/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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,7 +13,9 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/box.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
 /*<-*/ #include "create_svg_two.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,7 +13,7 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,7 +13,8 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,7 +13,8 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,7 +13,8 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/linestring.hpp>
+#include <boost/geometry/geometries/point_xy.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -15,10 +15,13 @@
 
 #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 >*/
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/register/linestring.hpp>
 
 #include <boost/foreach.hpp>
 
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::vector)
+
 
 int main()
 {
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -14,7 +14,8 @@
 #include <deque>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
 #include <boost/foreach.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,8 +13,8 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.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 >*/
 
 #include <boost/foreach.hpp>
 
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,6 +13,8 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/linestring.hpp>
+#include <boost/geometry/geometries/point_xy.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,6 +13,8 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/linestring.hpp>
+#include <boost/geometry/geometries/point_xy.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -12,6 +12,8 @@
 
 #include <iostream>
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/linestring.hpp>
+#include <boost/geometry/geometries/point_xy.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -12,6 +12,7 @@
 
 #include <iostream>
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/linestring.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,7 +13,7 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/register/point.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <boost/geometry/geometries/adapted/boost_polygon/point.hpp>
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,7 +13,7 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,7 +13,8 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/box.hpp>
+#include <boost/geometry/geometries/point_xy.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,6 +13,8 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/linestring.hpp>
+#include <boost/geometry/geometries/point_xy.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 >*/
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,8 +13,8 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/multi/multi.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.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/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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,8 +13,8 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/multi/multi.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.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/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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -14,7 +14,8 @@
 
 #include <boost/geometry.hpp>
 #include <boost/geometry/multi/multi.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.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/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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -14,7 +14,9 @@
 
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/box.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/ring.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,7 +13,8 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
+#include <boost/geometry/geometries/ring.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,7 +11,10 @@
 //` Example showing how to simplify a linestring
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/linestring.hpp>
+#include <boost/geometry/geometries/point_xy.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,7 +11,10 @@
 //` Simplify a linestring using a back inserter
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/linestring.hpp>
+#include <boost/geometry/geometries/point_xy.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,7 +11,10 @@
 //` Simplify a linestring using an output iterator
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/linestring.hpp>
+#include <boost/geometry/geometries/point_xy.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,7 +13,8 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
+#include <boost/geometry/geometries/point_xy.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/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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -14,7 +14,8 @@
 #include <vector>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
 #include <boost/foreach.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,6 +13,7 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -14,7 +14,8 @@
 #include <list>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 /*<-*/ #include "create_svg_two.hpp" /*->*/
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,7 +11,10 @@
 //` Examine if a polygon is defined as "should be closed"
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
+#include <boost/geometry/geometries/point_xy.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,7 +11,9 @@
 //` Examine the number of coordinates making up the points in a linestring type
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/linestring.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian);
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -12,7 +12,10 @@
 
 #include <iostream>
 #include <typeinfo>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
+#include <boost/geometry/geometries/point_xy.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -12,7 +12,10 @@
 
 #include <iostream>
 #include <typeinfo>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 int main()
 {
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,7 +11,9 @@
 //` Get the coordinate of a box
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 namespace bg = boost::geometry;
 
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,7 +11,9 @@
 //` Get the coordinate of a point
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 namespace bg = boost::geometry;
 
Modified: branches/release/libs/geometry/doc/src/examples/core/interior_type.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/core/interior_type.cpp	(original)
+++ branches/release/libs/geometry/doc/src/examples/core/interior_type.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -12,7 +12,10 @@
 
 #include <iostream>
 #include <typeinfo>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
+#include <boost/geometry/geometries/ring.hpp>
 #include <boost/geometry/geometries/adapted/boost_array.hpp>
 
 BOOST_GEOMETRY_REGISTER_BOOST_ARRAY_CS(cs::cartesian)
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,7 +11,10 @@
 //` Examine the expected point order of a polygon type
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
+#include <boost/geometry/geometries/point_xy.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -12,7 +12,11 @@
 
 #include <iostream>
 #include <typeinfo>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/multi/geometries/multi_polygon.hpp>
 
 int main()
 {
Modified: branches/release/libs/geometry/doc/src/examples/core/ring_type.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/core/ring_type.cpp	(original)
+++ branches/release/libs/geometry/doc/src/examples/core/ring_type.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -12,7 +12,10 @@
 
 #include <iostream>
 #include <typeinfo>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 int main()
 {
Modified: branches/release/libs/geometry/doc/src/examples/core/rings.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/core/rings.cpp	(original)
+++ branches/release/libs/geometry/doc/src/examples/core/rings.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -15,7 +15,10 @@
 */
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
+#include <boost/geometry/geometries/point_xy.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,7 +11,9 @@
 //` Set the coordinate of a box
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,7 +11,9 @@
 //` Set the coordinate of a point
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -15,6 +15,8 @@
 #include <boost/assign.hpp>
 
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
+#include <boost/geometry/multi/geometries/multi_polygon.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -12,7 +12,10 @@
 
 #include <iostream>
 #include <typeinfo>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 namespace geo = boost::geometry;
 int main()
Modified: branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_array.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_array.cpp	(original)
+++ branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_array.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,7 +11,9 @@
 //` Shows how to use a Boost.Array using Boost.Geometry's distance, set and assign_values algorithms
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/linestring.hpp>
 #include <boost/geometry/geometries/adapted/boost_array.hpp>
 
 BOOST_GEOMETRY_REGISTER_BOOST_ARRAY_CS(cs::cartesian)
Modified: branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/filtered.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/filtered.cpp	(original)
+++ branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/filtered.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,7 +11,10 @@
 //` Shows how to use a Boost.Geometry linestring, filtered by Boost.Range adaptor
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/linestring.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/adapted/boost_range/filtered.hpp>
 
 struct not_two
Modified: branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/reversed.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/reversed.cpp	(original)
+++ branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/reversed.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,7 +11,10 @@
 //` Shows how to use a Boost.Geometry linestring, reversed by Boost.Range adaptor
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/linestring.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/adapted/boost_range/reversed.hpp>
 
 int main()
Modified: branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/sliced.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/sliced.cpp	(original)
+++ branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/sliced.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -15,6 +15,8 @@
 #include <boost/assign.hpp>
 
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/linestring.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/adapted/boost_range/sliced.hpp>
 
 
Modified: branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/strided.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/strided.cpp	(original)
+++ branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/strided.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -15,6 +15,8 @@
 #include <boost/assign.hpp>
 
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/ring.hpp>
 #include <boost/geometry/geometries/adapted/boost_range/strided.hpp>
 
 
Modified: branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/uniqued.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/uniqued.cpp	(original)
+++ branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/uniqued.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -15,6 +15,8 @@
 #include <boost/assign.hpp>
 
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/ring.hpp>
 #include <boost/geometry/geometries/adapted/boost_range/uniqued.hpp>
 
 typedef boost::geometry::model::d2::point_xy<int> xy;
Modified: branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_tuple.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_tuple.cpp	(original)
+++ branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_tuple.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -17,7 +17,9 @@
 */
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
Modified: branches/release/libs/geometry/doc/src/examples/geometries/register/box_templated.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/geometries/register/box_templated.cpp	(original)
+++ branches/release/libs/geometry/doc/src/examples/geometries/register/box_templated.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,7 +11,9 @@
 //` Show the use of the macro BOOST_GEOMETRY_REGISTER_BOX_TEMPLATED
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/register/box.hpp>
 
 template <typename P>
Modified: branches/release/libs/geometry/doc/src/examples/geometries/register/linestring.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/geometries/register/linestring.cpp	(original)
+++ branches/release/libs/geometry/doc/src/examples/geometries/register/linestring.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,7 +11,9 @@
 //` Show the use of BOOST_GEOMETRY_REGISTER_LINESTRING
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/register/linestring.hpp>
 
 typedef boost::geometry::model::d2::point_xy<double> point_2d;
Modified: branches/release/libs/geometry/doc/src/examples/geometries/register/linestring_templated.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/geometries/register/linestring_templated.cpp	(original)
+++ branches/release/libs/geometry/doc/src/examples/geometries/register/linestring_templated.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -12,7 +12,9 @@
 
 #include <iostream>
 #include <deque>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/register/linestring.hpp>
 
 // Adapt any deque to Boost.Geometry Linestring Concept
Modified: branches/release/libs/geometry/doc/src/examples/geometries/register/multi_linestring.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/geometries/register/multi_linestring.cpp	(original)
+++ branches/release/libs/geometry/doc/src/examples/geometries/register/multi_linestring.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,7 +11,9 @@
 //` Show the use of the macro BOOST_GEOMETRY_REGISTER_MULTI_LINESTRING
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/linestring.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <boost/geometry/multi/geometries/register/multi_linestring.hpp>
 
Modified: branches/release/libs/geometry/doc/src/examples/geometries/register/multi_polygon.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/geometries/register/multi_polygon.cpp	(original)
+++ branches/release/libs/geometry/doc/src/examples/geometries/register/multi_polygon.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,7 +11,9 @@
 //` Show the use of the macro BOOST_GEOMETRY_REGISTER_MULTI_POLYGON
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <boost/geometry/multi/geometries/register/multi_polygon.hpp>
 
Modified: branches/release/libs/geometry/doc/src/examples/geometries/register/ring.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/geometries/register/ring.cpp	(original)
+++ branches/release/libs/geometry/doc/src/examples/geometries/register/ring.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,7 +11,9 @@
 //` Show the use of the macro BOOST_GEOMETRY_REGISTER_RING
 
 #include <iostream>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/register/ring.hpp>
 
 typedef boost::geometry::model::d2::point_xy<double> point_2d;
Modified: branches/release/libs/geometry/doc/src/examples/geometries/register/ring_templated.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/geometries/register/ring_templated.cpp	(original)
+++ branches/release/libs/geometry/doc/src/examples/geometries/register/ring_templated.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -12,7 +12,9 @@
 
 #include <iostream>
 #include <deque>
+
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/register/ring.hpp>
 
 // Adapt any deque to Boost.Geometry Ring Concept
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -22,6 +22,8 @@
 //[quickstart_include
 
 #include <boost/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 
 using namespace boost::geometry;
 //]
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,6 +13,7 @@
 #include <iostream>
 
 #include <boost/geometry/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.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>
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -17,11 +17,19 @@
 #include <vector>
 
 #include <boost/geometry/geometry.hpp>
-// Optional includes to handle c-arrays as points, std::vectors as linestrings
+#include <boost/geometry/geometries/linestring.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
+
+// Optional includes and defines to handle c-arrays as points, std::vectors as linestrings
+#include <boost/geometry/geometries/register/linestring.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)
 
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::vector)
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::deque)
+
 
 template<typename P>
 inline void translate_function(P& p)
@@ -130,11 +138,6 @@
             << "as vector: "
             << dsv(v)
             << std::endl;
-
-        std::cout
-            << "as it-pair: "
-            << dsv(std::make_pair(v.begin(), v.end()))
-            << std::endl;
     }
 
     // All algorithms from std can be used: a linestring is a vector
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -15,9 +15,10 @@
 #include <string>
 
 #include <boost/geometry/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/geometries/adapted/c_array.hpp>
-#include <boost/geometry/geometries/adapted/std_as_linestring.hpp>
-#include <boost/geometry/multi/multi.hpp>
+#include <boost/geometry/multi/geometries/multi_polygon.hpp>
 
 BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
 
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,6 +13,9 @@
 #include <iostream>
 
 #include <boost/geometry/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/linestring.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 #include <boost/assign.hpp>
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -19,6 +19,8 @@
 
 
 #include <boost/geometry/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/geometries/adapted/c_array.hpp>
 
 #if defined(HAVE_SVG)
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -19,6 +19,9 @@
 
 
 #include <boost/geometry/geometry.hpp>
+#include <boost/geometry/geometries/linestring.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/geometries/adapted/c_array.hpp>
 
 #if defined(HAVE_SVG)
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,8 +13,9 @@
 #include <iostream>
 
 #include <boost/geometry/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.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)
 
@@ -37,7 +38,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.hpp, std_as_linestring.hpp)
+    // include files above (c_array.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/06_b_transformation_example.cpp
==============================================================================
--- branches/release/libs/geometry/example/06_b_transformation_example.cpp	(original)
+++ branches/release/libs/geometry/example/06_b_transformation_example.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -16,6 +16,8 @@
 #include <sstream>
 
 #include <boost/geometry/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/algorithms/centroid.hpp>
 #include <boost/geometry/strategies/transform.hpp>
 #include <boost/geometry/strategies/transform/matrix_transformers.hpp>
Modified: branches/release/libs/geometry/example/07_a_graph_route_example.cpp
==============================================================================
--- branches/release/libs/geometry/example/07_a_graph_route_example.cpp	(original)
+++ branches/release/libs/geometry/example/07_a_graph_route_example.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -24,6 +24,7 @@
 #include <boost/graph/dijkstra_shortest_paths.hpp>
 
 #include <boost/geometry/geometry.hpp>
+#include <boost/geometry/geometries/linestring.hpp>
 #include <boost/geometry/domains/gis/io/wkt/read_wkt.hpp>
 
 
Modified: branches/release/libs/geometry/example/07_b_graph_route_example.cpp
==============================================================================
--- branches/release/libs/geometry/example/07_b_graph_route_example.cpp	(original)
+++ branches/release/libs/geometry/example/07_b_graph_route_example.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -28,6 +28,7 @@
 #include <boost/graph/dijkstra_shortest_paths.hpp>
 
 #include <boost/geometry/geometry.hpp>
+#include <boost/geometry/geometries/linestring.hpp>
 #include <boost/geometry/domains/gis/io/wkt/read_wkt.hpp>
 
 
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -16,6 +16,7 @@
 
 #include <boost/geometry/algorithms/area.hpp>
 #include <boost/geometry/algorithms/centroid.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/register/ring.hpp>
 #include <boost/geometry/strategies/strategies.hpp>
 #include <boost/geometry/util/write_dsv.hpp>
Modified: branches/release/libs/geometry/example/c05_custom_point_pointer_example.cpp
==============================================================================
--- branches/release/libs/geometry/example/c05_custom_point_pointer_example.cpp	(original)
+++ branches/release/libs/geometry/example/c05_custom_point_pointer_example.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -19,9 +19,13 @@
 #include <boost/geometry/algorithms/make.hpp>
 #include <boost/geometry/algorithms/intersection.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/std_as_linestring.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/register/linestring.hpp>
 #include <boost/geometry/strategies/strategies.hpp>
 
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::vector)
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::deque)
+
 // Sample point, having x/y
 struct my_point
 {
@@ -112,7 +116,5 @@
         delete p;
     }
 
-
-
     return 0;
 }
Modified: branches/release/libs/geometry/example/c07_custom_ring_pointer_example.cpp
==============================================================================
--- branches/release/libs/geometry/example/c07_custom_ring_pointer_example.cpp	(original)
+++ branches/release/libs/geometry/example/c07_custom_ring_pointer_example.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -15,8 +15,10 @@
 #include <boost/foreach.hpp>
 
 #include <boost/geometry/geometry.hpp>
+#include <boost/geometry/geometries/register/ring.hpp>
+
+BOOST_GEOMETRY_REGISTER_RING_TEMPLATED(std::vector)
 
-#include <boost/geometry/geometries/adapted/std_as_ring.hpp>
 
 // Sample point, having x/y
 struct my_point
Modified: branches/release/libs/geometry/example/with_external_libs/x04_wxwidgets_world_mapper.cpp
==============================================================================
--- branches/release/libs/geometry/example/with_external_libs/x04_wxwidgets_world_mapper.cpp	(original)
+++ branches/release/libs/geometry/example/with_external_libs/x04_wxwidgets_world_mapper.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -18,6 +18,7 @@
 #include <boost/scoped_array.hpp>
 
 #include <boost/geometry/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/register/point.hpp>
 #include <boost/geometry/geometries/register/ring.hpp>
 #include <boost/geometry/multi/multi.hpp>
Modified: branches/release/libs/geometry/example/with_external_libs/x05_shapelib_example.cpp
==============================================================================
--- branches/release/libs/geometry/example/with_external_libs/x05_shapelib_example.cpp	(original)
+++ branches/release/libs/geometry/example/with_external_libs/x05_shapelib_example.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -20,6 +20,7 @@
 #include "shapefil.h"
 
 #include <boost/geometry/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/domains/gis/io/wkt/stream_wkt.hpp>
 
 using namespace boost::geometry;
Modified: branches/release/libs/geometry/example/with_external_libs/x06_qt_world_mapper.cpp
==============================================================================
--- branches/release/libs/geometry/example/with_external_libs/x06_qt_world_mapper.cpp	(original)
+++ branches/release/libs/geometry/example/with_external_libs/x06_qt_world_mapper.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -23,6 +23,7 @@
 #include <boost/foreach.hpp>
 
 #include <boost/geometry/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/register/point.hpp>
 #include <boost/geometry/geometries/register/ring.hpp>
 
Modified: branches/release/libs/geometry/test/algorithms/append.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/append.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/append.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -24,12 +24,14 @@
 #include <boost/geometry/algorithms/append.hpp>
 #include <boost/geometry/algorithms/num_points.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/std_as_linestring.hpp>
-#include <boost/geometry/geometries/adapted/boost_array_as_linestring.hpp>
+#include <boost/geometry/geometries/register/linestring.hpp>
 
 #include <test_common/test_point.hpp>
 #include <test_geometries/wrapped_boost_array.hpp>
 
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::vector)
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::deque)
+
 
 template <typename G>
 void test_geometry(bool check = true)
@@ -77,8 +79,6 @@
     test_geometry<std::vector<P> >();
     test_geometry<std::deque<P> >();
     //test_geometry<std::list<P> >();
-
-    test_geometry<test::wrapped_boost_array<P, 3> >();
 }
 
 int test_main(int, char* [])
Modified: branches/release/libs/geometry/test/algorithms/area.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/area.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/area.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -17,6 +17,7 @@
 
 #include <algorithms/test_area.hpp>
 
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/point.hpp>
 #include <boost/geometry/geometries/box.hpp>
 #include <boost/geometry/geometries/ring.hpp>
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -15,6 +15,7 @@
 #include <algorithms/test_centroid.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/adapted/c_array.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
Modified: branches/release/libs/geometry/test/algorithms/convex_hull.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/convex_hull.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/convex_hull.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -18,6 +18,7 @@
 #include <algorithms/test_convex_hull.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 
 template <typename P>
Modified: branches/release/libs/geometry/test/algorithms/detail/partition.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/detail/partition.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/detail/partition.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -12,6 +12,7 @@
 
 #include <boost/geometry/geometry.hpp>
 #include <boost/geometry/multi/geometries/multi_point.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/register/point.hpp>
 
 #include <boost/geometry/algorithms/detail/partition.hpp>
Modified: branches/release/libs/geometry/test/algorithms/detail/sections/range_by_section.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/detail/sections/range_by_section.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/detail/sections/range_by_section.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -17,6 +17,7 @@
 #include <boost/geometry/algorithms/detail/sections/range_by_section.hpp>
 #include <boost/geometry/views/detail/range_type.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
 
Modified: branches/release/libs/geometry/test/algorithms/detail/sections/sectionalize.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/detail/sections/sectionalize.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/detail/sections/sectionalize.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -22,9 +22,11 @@
 #include <boost/geometry/algorithms/num_points.hpp>
 #include <boost/geometry/algorithms/detail/sections/sectionalize.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/domains/gis/io/wkt/read_wkt.hpp>
 #include <boost/geometry/domains/gis/io/wkt/write_wkt.hpp>
 
+
 #include <test_common/test_point.hpp>
 
 #if defined(TEST_WITH_SVG)
Modified: branches/release/libs/geometry/test/algorithms/difference.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/difference.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/difference.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -23,6 +23,8 @@
 #include <boost/geometry/multi/algorithms/intersection.hpp>
 #include <boost/geometry/multi/algorithms/within.hpp>
 
+#include <boost/geometry/geometries/point_xy.hpp>
+
 //#include <boost/geometry/extensions/gis/io/wkb/read_wkb.hpp>
 //#include <boost/geometry/extensions/gis/io/wkb/utility.hpp>
 
Modified: branches/release/libs/geometry/test/algorithms/disjoint.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/disjoint.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/disjoint.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -20,6 +20,7 @@
 
 #include <boost/geometry/algorithms/disjoint.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/domains/gis/io/wkt/read_wkt.hpp>
 #include <boost/geometry/strategies/strategies.hpp>
 
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -19,9 +19,10 @@
 #include <algorithms/test_distance.hpp>
 
 #include <boost/mpl/if.hpp>
+#include <boost/array.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/boost_array_as_linestring.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/adapted/c_array.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
@@ -32,6 +33,16 @@
 BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
+// Register boost array as a linestring
+namespace boost { namespace geometry { namespace traits
+{
+template <typename Point, std::size_t PointCount>
+struct tag< boost::array<Point, PointCount> >
+{
+    typedef linestring_tag type;
+};
+
+}}}
 
 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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -16,6 +16,7 @@
 #include <algorithms/test_envelope.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.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>
Modified: branches/release/libs/geometry/test/algorithms/equals.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/equals.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/equals.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -8,6 +8,7 @@
 #include <algorithms/test_equals.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 
 
@@ -20,15 +21,13 @@
     typedef bg::model::polygon<P> polygon;
     typedef bg::model::linestring<P> linestring;
 
+    std::string case_p1 = "POLYGON((0 0,0 2,2 2,0 0))";
 
     test_geometry<P, P>("p1", "POINT(1 1)", "POINT(1 1)", true);
     test_geometry<P, P>("p2", "POINT(1 1)", "POINT(1 2)", false);
     test_geometry<box, box>("b1", "BOX(1 1,2 2)", "BOX(1 2,2 2)", false);
     test_geometry<box, box>("b1", "BOX(1 2,3 4)", "BOX(1 2,3 4)", true);
 
-
-    std::string case_p1 = "POLYGON((0 0,0 2,2 2,0 0))";
-
     // Completely equal
     test_geometry<ring, ring>("poly_eq", case_p1, case_p1, true);
 
@@ -38,7 +37,14 @@
 
     // Extra coordinate
     test_geometry<ring, ring>("poly_extra", case_p1, "POLYGON((0 0,0 2,2 2,1 1,0 0))", true);
-    // Degenerate points
+
+    // Shifted + extra (redundant) coordinate
+    test_geometry<ring, ring>("poly_shifted_extra1", "POLYGON((2 2,1 1,0 0,0 2,2 2))", case_p1, true);
+
+    // Shifted + extra (redundant) coordinate being first/last point
+    test_geometry<ring, ring>("poly_shifted_extra2", "POLYGON((1 1,0 0,0 2,2 2,1 1))", case_p1, true);
+
+    // Degenerate (duplicate) points
     test_geometry<ring, ring>("poly_degenerate", "POLYGON((0 0,0 2,2 2,2 2,0 0))", "POLYGON((0 0,0 2,0 2,2 2,0 0))", true);
 
     // Two different bends, same area, unequal
@@ -95,10 +101,56 @@
 }
 
 
+template <typename T>
+void verify()
+{
+    T dxn1, dyn1, dxn2, dyn2;
+
+    {
+        T x1 = "0", y1 = "0", x2 = "3", y2 = "3";
+        T dx = x2 - x1, dy = y2 - y1;
+        T mag = sqrt(dx * dx + dy * dy);
+        dxn1 = dx / mag;
+        dyn1 = dy / mag;
+    }
+
+    {
+        T x1 = "0", y1 = "0", x2 = "1", y2 = "1";
+        T dx = x2 - x1, dy = y2 - y1;
+        T mag = sqrt(dx * dx + dy * dy);
+        dxn2 = dx / mag;
+        dyn2 = dy / mag;
+    }
+
+    if (dxn1 == dxn2 && dyn1 == dyn2)
+    {
+        //std::cout << "vectors are equal, using ==" << std::endl;
+    }
+    if (boost::geometry::math::equals(dxn1, dxn2)
+        && boost::geometry::math::equals(dyn1, dyn2))
+    {
+        //std::cout << "vectors are equal, using bg::math::equals" << std::endl;
+    }
+
+    bool equals = boost::geometry::math::equals_with_epsilon(dxn1, dxn2)
+        && boost::geometry::math::equals_with_epsilon(dyn1, dyn2);
+
+    if (equals)
+    {
+        //std::cout << "vectors are equal, using bg::math::equals_with_epsilon" << std::endl;
+    }
+
+    BOOST_CHECK_EQUAL(equals, true);
+}
 
 
 int test_main( int , char* [] )
 {
+    //verify<double>();
+#if defined(HAVE_TTMATH)
+    verify<ttmath_big>();
+#endif
+
     test_all<bg::model::d2::point_xy<int> >();
     test_all<bg::model::d2::point_xy<double> >();
 
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -23,12 +23,16 @@
 #include <algorithms/test_intersection.hpp>
 #include <algorithms/test_overlay.hpp>
 
-#include <boost/geometry/geometries/adapted/std_as_linestring.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/register/linestring.hpp>
 
 #include <test_common/test_point.hpp>
 #include <test_common/with_pointer.hpp>
 #include <test_geometries/custom_segment.hpp>
 
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::vector)
+
+
 static std::string pie_2_3_23_0[2] =
 {
     "POLYGON((2500 2500,2855 3828,2500 3875,2500 2500))",
Modified: branches/release/libs/geometry/test/algorithms/intersects.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/intersects.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/intersects.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -9,6 +9,7 @@
 
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 
 template <typename P>
Modified: branches/release/libs/geometry/test/algorithms/length.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/length.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/length.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -10,6 +10,7 @@
 #include <algorithms/test_length.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/adapted/std_pair_as_segment.hpp>
 
 #include <test_geometries/all_custom_linestring.hpp>
Modified: branches/release/libs/geometry/test/algorithms/overlaps.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/overlaps.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/overlaps.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -9,6 +9,7 @@
 
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 
 template <typename P>
Modified: branches/release/libs/geometry/test/algorithms/overlay/assemble.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/overlay/assemble.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/overlay/assemble.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -24,6 +24,7 @@
 #include <boost/geometry/algorithms/within.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 #include <boost/geometry/strategies/strategies.hpp>
 
Modified: branches/release/libs/geometry/test/algorithms/overlay/ccw_traverse.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/overlay/ccw_traverse.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/overlay/ccw_traverse.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -16,6 +16,7 @@
 #include <geometry_test_common.hpp>
 
 #include <boost/geometry/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
 #if defined(TEST_WITH_SVG)
Modified: branches/release/libs/geometry/test/algorithms/overlay/dissolver.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/overlay/dissolver.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/overlay/dissolver.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -16,6 +16,7 @@
 #include <boost/geometry/algorithms/detail/overlay/dissolver.hpp>
 
 #include <boost/geometry/strategies/strategies.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/multi/multi.hpp>
 #include <boost/geometry/multi/geometries/multi_polygon.hpp>
 #include <boost/geometry/domains/gis/io/wkt/read_wkt_multi.hpp>
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -816,8 +816,6 @@
 
 
 /***
-#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.hpp>
 BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
 
Modified: branches/release/libs/geometry/test/algorithms/overlay/relative_order.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/overlay/relative_order.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/overlay/relative_order.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -20,6 +20,8 @@
 #include <boost/geometry/algorithms/detail/overlay/get_turn_info.hpp>
 #include <boost/geometry/algorithms/detail/overlay/get_relative_order.hpp>
 
+#include <boost/geometry/geometries/point_xy.hpp>
+
 #if defined(TEST_WITH_SVG)
 #  include <boost/geometry/extensions/io/svg/svg_mapper.hpp>
 #endif
Modified: branches/release/libs/geometry/test/algorithms/overlay/robustness/random_ellipses_stars.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/overlay/robustness/random_ellipses_stars.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/overlay/robustness/random_ellipses_stars.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -29,6 +29,8 @@
 
 #include <boost/geometry/geometry.hpp>
 
+#include <boost/geometry/geometries/point_xy.hpp>
+
 
 struct star_params
 {
Modified: branches/release/libs/geometry/test/algorithms/overlay/robustness/recursive_polygons.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/overlay/robustness/recursive_polygons.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/overlay/robustness/recursive_polygons.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -28,6 +28,7 @@
 
 #include <boost/geometry/geometry.hpp>
 #include <boost/geometry/multi/multi.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/multi/geometries/multi_polygon.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 #include <boost/geometry/extensions/io/svg/svg_mapper.hpp>
Modified: branches/release/libs/geometry/test/algorithms/overlay/robustness/star_comb.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/overlay/robustness/star_comb.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/overlay/robustness/star_comb.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -30,6 +30,7 @@
 
 #include <boost/geometry/geometry.hpp>
 #include <boost/geometry/multi/multi.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/multi/geometries/multi_polygon.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 #include <boost/geometry/extensions/io/svg/svg_mapper.hpp>
Modified: branches/release/libs/geometry/test/algorithms/overlay/robustness/test_overlay_p_q.hpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/overlay/robustness/test_overlay_p_q.hpp	(original)
+++ branches/release/libs/geometry/test/algorithms/overlay/robustness/test_overlay_p_q.hpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -25,6 +25,8 @@
 #include <boost/geometry/geometry.hpp>
 #include <boost/geometry/multi/multi.hpp>
 
+#include <boost/geometry/multi/geometries/multi_polygon.hpp>
+
 #include <boost/geometry/algorithms/detail/overlay/debug_turn_info.hpp>
 
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
Modified: branches/release/libs/geometry/test/algorithms/overlay/select_rings.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/overlay/select_rings.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/overlay/select_rings.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -15,6 +15,9 @@
 #include <boost/geometry/algorithms/detail/overlay/select_rings.hpp>
 #include <boost/geometry/algorithms/detail/overlay/assign_parents.hpp>
 
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
+
 #include <boost/geometry/domains/gis/io/wkt/read_wkt.hpp>
 
 #include <boost/assign/list_of.hpp>
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -24,6 +24,8 @@
 //#include <boost/geometry/algorithms/detail/overlay/self_intersection_points.hpp>
 #include <boost/geometry/algorithms/detail/overlay/self_turn_points.hpp>
 
+#include <boost/geometry/geometries/point_xy.hpp>
+
 #include <boost/geometry/strategies/strategies.hpp>
 
 #include <boost/geometry/domains/gis/io/wkt/read_wkt.hpp>
Modified: branches/release/libs/geometry/test/algorithms/overlay/split_rings.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/overlay/split_rings.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/overlay/split_rings.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -21,6 +21,8 @@
 #include <boost/geometry/algorithms/detail/overlay/split_rings.hpp>
 #include <boost/geometry/algorithms/area.hpp>
 
+#include <boost/geometry/geometries/point_xy.hpp>
+
 #include <boost/geometry/strategies/strategies.hpp>
 
 #include <boost/geometry/domains/gis/io/wkt/read_wkt.hpp>
Modified: branches/release/libs/geometry/test/algorithms/overlay/traverse_gmp.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/overlay/traverse_gmp.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/overlay/traverse_gmp.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -30,6 +30,7 @@
 
 #include <boost/geometry/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 #include <boost/geometry/algorithms/detail/overlay/turn_info.hpp>
 #include <boost/geometry/algorithms/detail/overlay/enrichment_info.hpp>
Modified: branches/release/libs/geometry/test/algorithms/perimeter.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/perimeter.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/perimeter.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -9,6 +9,7 @@
 
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 #include <algorithms/test_perimeter.hpp>
 
Modified: branches/release/libs/geometry/test/algorithms/reverse.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/reverse.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/reverse.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -10,6 +10,7 @@
 
 #include <algorithms/test_reverse.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 #include <test_common/test_point.hpp>
 #include <test_geometries/all_custom_linestring.hpp>
Modified: branches/release/libs/geometry/test/algorithms/simplify.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/simplify.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/simplify.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -17,7 +17,7 @@
 
 #include <algorithms/test_simplify.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
-
+#include <boost/geometry/geometries/point_xy.hpp>
 
 #include <test_geometries/wrapped_boost_array.hpp>
 #include <test_common/test_point.hpp>
Modified: branches/release/libs/geometry/test/algorithms/transform.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/transform.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/transform.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -22,6 +22,7 @@
 #include <boost/geometry/algorithms/transform.hpp>
 #include <boost/geometry/strategies/strategies.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 #include <boost/geometry/util/write_dsv.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
Modified: branches/release/libs/geometry/test/algorithms/union.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/union.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/union.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -23,6 +23,7 @@
 #include <algorithms/test_overlay.hpp>
 
 #include <algorithms/overlay/overlay_cases.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 static std::string javier4[2] =
     {
Modified: branches/release/libs/geometry/test/algorithms/unique.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/unique.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/unique.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -10,6 +10,7 @@
 
 #include <algorithms/test_unique.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 
 
Modified: branches/release/libs/geometry/test/algorithms/within.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/within.cpp	(original)
+++ branches/release/libs/geometry/test/algorithms/within.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -9,6 +9,7 @@
 
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 
 template <typename P>
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -19,8 +19,7 @@
 #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>
+#include <boost/geometry/geometries/register/linestring.hpp>
 
 #include <vector>
 #include <deque>
@@ -28,6 +27,9 @@
 BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::vector)
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::deque)
+
 
 template <typename G, int Expected>
 void test_geometry()
@@ -49,8 +51,6 @@
 
     test_geometry<std::vector<P>, D>();
     test_geometry<std::deque<P>, D>();
-
-    test_geometry<boost::array<P, 5>, D>();
 }
 
 int test_main(int, char* [])
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -19,8 +19,7 @@
 #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>
+#include <boost/geometry/geometries/register/linestring.hpp>
 
 #include <vector>
 #include <deque>
@@ -28,6 +27,9 @@
 BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::vector)
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::deque)
+
 
 template <typename G, typename Expected>
 void test_geometry()
@@ -50,8 +52,6 @@
 
     test_geometry<std::vector<P>, Expected>();
     test_geometry<std::deque<P>, Expected>();
-
-    test_geometry<boost::array<P, 5>, Expected>();
 }
 
 int test_main(int, char* [])
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -19,8 +19,7 @@
 #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>
+#include <boost/geometry/geometries/register/linestring.hpp>
 
 #include <vector>
 #include <deque>
@@ -28,6 +27,9 @@
 BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::vector)
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::deque)
+
 
 template <typename G, typename Expected>
 void test_geometry()
@@ -50,8 +52,6 @@
 
     test_geometry<std::vector<P>, Expected>();
     test_geometry<std::deque<P>, Expected>();
-
-    test_geometry<boost::array<P, 5>, Expected>();
 }
 
 int test_main(int, char* [])
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -18,8 +18,7 @@
 #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>
+#include <boost/geometry/geometries/register/linestring.hpp>
 
 #include <vector>
 #include <deque>
@@ -27,6 +26,9 @@
 BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::vector)
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::deque)
+
 
 template <typename G, int Expected>
 void test_geometry()
@@ -48,8 +50,6 @@
 
     test_geometry<std::vector<P>, 2>();
     test_geometry<std::deque<P>, 2>();
-
-    test_geometry<boost::array<P, 5>, 2>();
 }
 
 int test_main(int, char* [])
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -18,8 +18,7 @@
 #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>
+#include <boost/geometry/geometries/register/linestring.hpp>
 
 #include <vector>
 #include <deque>
@@ -27,6 +26,9 @@
 BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::vector)
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::deque)
+
 
 template <typename G, typename Expected>
 void test_geometry()
@@ -49,8 +51,6 @@
 
     test_geometry<std::vector<P>, P>();
     test_geometry<std::deque<P>, P>();
-
-    test_geometry<boost::array<P, 5>, P>();
 }
 
 int test_main(int, char* [])
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -17,8 +17,7 @@
 #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>
+#include <boost/geometry/geometries/register/linestring.hpp>
 
 #include <vector>
 #include <deque>
@@ -26,6 +25,9 @@
 BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::vector)
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::deque)
+
 
 template <typename G, typename Expected>
 void test_geometry()
@@ -49,7 +51,6 @@
     test_geometry<std::vector<P>, bg::linestring_tag>();
     test_geometry<std::deque<P>, bg::linestring_tag>();
 
-    test_geometry<boost::array<P, 5>, bg::linestring_tag>();
 }
 
 int test_main(int, char* [])
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -14,11 +14,10 @@
 
 #include <boost/geometry/geometries/geometries.hpp>
 
+#include <boost/geometry/geometries/register/linestring.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>
 
 #include <vector>
 #include <deque>
@@ -26,6 +25,9 @@
 BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::vector)
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::deque)
+
 
 template <typename G, int Expected>
 void test_geometry()
@@ -48,7 +50,6 @@
     test_geometry<std::vector<P>, 1>();
     test_geometry<std::deque<P>, 1>();
 
-    test_geometry<boost::array<P, 5>, 1>();
 }
 
 int test_main(int, char* [])
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -15,40 +15,41 @@
 #include <boost/geometry/geometries/geometries.hpp>
 #include <boost/geometry/multi/multi.hpp>
 
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
+
+#include <test_common/test_point.hpp>
+
 #define BOOST_GEOMETRY_TEST_RING
 
 
 
 #if defined(BOOST_GEOMETRY_TEST_RING)
 
-  #include <boost/geometry/geometries/concepts/ring_concept.hpp>
-
-  #include <boost/geometry/geometries/adapted/boost_array_as_ring.hpp>
-  #include <boost/geometry/geometries/adapted/c_array_as_ring.hpp>
-  #include <boost/geometry/geometries/adapted/std_as_ring.hpp>
+    #include <boost/geometry/geometries/register/ring.hpp>
+    #include <boost/geometry/geometries/concepts/ring_concept.hpp>
 
+    BOOST_GEOMETRY_REGISTER_RING_TEMPLATED(std::vector)
+    BOOST_GEOMETRY_REGISTER_RING_TEMPLATED(std::deque)
+  
 #elif defined(BOOST_GEOMETRY_TEST_MULTI_POINT)
 
-  #include <boost/geometry/multi/geometries/concepts/multi_point_concept.hpp>
-
-  #include <boost/geometry/multi/geometries/adapted/boost_array_as_multi_point.hpp>
-  #include <boost/geometry/multi/geometries/adapted/c_array_as_multi_point.hpp>
-  #include <boost/geometry/multi/geometries/adapted/std_as_multi_point.hpp>
-
+    #include <boost/geometry/multi/geometries/register/multi_point.hpp>
+    #include <boost/geometry/multi/geometries/concepts/multi_point_concept.hpp>
 
+    BOOST_GEOMETRY_REGISTER_MULTI_POINT_TEMPLATED(std::vector)
+    BOOST_GEOMETRY_REGISTER_MULTI_POINT_TEMPLATED(std::deque)
+  
 #else
-  #include <boost/geometry/geometries/concepts/linestring_concept.hpp>
 
-  #include <boost/geometry/geometries/adapted/boost_array_as_linestring.hpp>
-  #include <boost/geometry/geometries/adapted/c_array_as_linestring.hpp>
-  #include <boost/geometry/geometries/adapted/std_as_linestring.hpp>
-#endif
+    #include <boost/geometry/geometries/register/linestring.hpp>
+    #include <boost/geometry/geometries/concepts/linestring_concept.hpp>
 
+    BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::vector)
+    BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::deque)
+  
+#endif
 
-#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)
@@ -82,16 +83,14 @@
     test_geometry(std::deque<P>());
     //test_geometry(std::list<P>());
 
-
-    test_geometry(boost::array<P, 5>(), 5);
-
-
+    /***
     double vertices[][3] = {
         {-1, -1,  1}, {1, -1,  1}, {1, 1,  1}, {-1, 1,  1},
         {-1, -1, -1}, {1, -1, -1}, {1, 1, -1}, {-1, 1, -1}
         };
 
     test_geometry(vertices, 8);
+    ***/
 }
 
 int test_main(int, char* [])
Modified: branches/release/libs/geometry/test/geometries/boost_polygon.cpp
==============================================================================
--- branches/release/libs/geometry/test/geometries/boost_polygon.cpp	(original)
+++ branches/release/libs/geometry/test/geometries/boost_polygon.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,11 +11,19 @@
 
 
 #include <boost/geometry/geometry.hpp>
+
+#include <boost/geometry/geometries/box.hpp>
+#include <boost/geometry/geometries/point.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
+#include <boost/geometry/geometries/ring.hpp>
+
 #include <boost/geometry/geometries/adapted/boost_polygon/point.hpp>
 #include <boost/geometry/geometries/adapted/boost_polygon/box.hpp>
 #include <boost/geometry/geometries/adapted/boost_polygon/ring.hpp>
 #include <boost/geometry/geometries/adapted/boost_polygon/polygon.hpp>
+
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
+
 #include <iostream>
 
 template <typename T>
Modified: branches/release/libs/geometry/test/geometries/boost_polygon_overlay.cpp
==============================================================================
--- branches/release/libs/geometry/test/geometries/boost_polygon_overlay.cpp	(original)
+++ branches/release/libs/geometry/test/geometries/boost_polygon_overlay.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,6 +11,7 @@
 
 
 #include <boost/geometry/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/adapted/boost_polygon/point.hpp>
 #include <boost/geometry/geometries/adapted/boost_polygon/box.hpp>
 #include <boost/geometry/geometries/adapted/boost_polygon/ring.hpp>
Modified: branches/release/libs/geometry/test/geometries/boost_range.cpp
==============================================================================
--- branches/release/libs/geometry/test/geometries/boost_range.cpp	(original)
+++ branches/release/libs/geometry/test/geometries/boost_range.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,6 +13,7 @@
 
 #include <boost/geometry/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/adapted/boost_range/adjacent_filtered.hpp>
 #include <boost/geometry/geometries/adapted/boost_range/filtered.hpp>
 #include <boost/geometry/geometries/adapted/boost_range/reversed.hpp>
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -25,8 +25,7 @@
 
 
 #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/register/linestring.hpp>
 #include <boost/geometry/geometries/adapted/c_array.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <test_common/test_point.hpp>
@@ -34,6 +33,9 @@
 BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::vector)
+BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED(std::deque)
+
 //#define TEST_FAIL_CLEAR
 //#define TEST_FAIL_APPEND
 
Modified: branches/release/libs/geometry/test/iterators/closing_iterator.cpp
==============================================================================
--- branches/release/libs/geometry/test/iterators/closing_iterator.cpp	(original)
+++ branches/release/libs/geometry/test/iterators/closing_iterator.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -24,6 +24,7 @@
 #include <boost/geometry/core/coordinate_type.hpp>
 #include <boost/geometry/domains/gis/io/wkt/read_wkt.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 
 // The closing iterator should also work on normal std:: containers
Modified: branches/release/libs/geometry/test/iterators/ever_circling_iterator.cpp
==============================================================================
--- branches/release/libs/geometry/test/iterators/ever_circling_iterator.cpp	(original)
+++ branches/release/libs/geometry/test/iterators/ever_circling_iterator.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -22,6 +22,7 @@
 #include <boost/geometry/core/coordinate_type.hpp>
 #include <boost/geometry/domains/gis/io/wkt/read_wkt.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 template <typename G>
 void test_geometry(std::string const& wkt)
Modified: branches/release/libs/geometry/test/multi/algorithms/multi_area.cpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/multi_area.cpp	(original)
+++ branches/release/libs/geometry/test/multi/algorithms/multi_area.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,6 +11,8 @@
 #include <boost/geometry/multi/multi.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/multi/geometries/multi_polygon.hpp>
 
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
Modified: branches/release/libs/geometry/test/multi/algorithms/multi_centroid.cpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/multi_centroid.cpp	(original)
+++ branches/release/libs/geometry/test/multi/algorithms/multi_centroid.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -20,6 +20,7 @@
 #include <boost/geometry/multi/strategies/cartesian/centroid_average.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 #include <boost/geometry/multi/geometries/multi_point.hpp>
 #include <boost/geometry/multi/geometries/multi_linestring.hpp>
Modified: branches/release/libs/geometry/test/multi/algorithms/multi_convex_hull.cpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/multi_convex_hull.cpp	(original)
+++ branches/release/libs/geometry/test/multi/algorithms/multi_convex_hull.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -19,6 +19,7 @@
 #include <algorithms/test_convex_hull.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 #include <boost/geometry/domains/gis/io/wkt/read_wkt.hpp>
 
Modified: branches/release/libs/geometry/test/multi/algorithms/multi_difference.cpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/multi_difference.cpp	(original)
+++ branches/release/libs/geometry/test/multi/algorithms/multi_difference.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -21,6 +21,7 @@
 #include <boost/geometry/multi/algorithms/intersection.hpp>
 #include <boost/geometry/multi/algorithms/within.hpp> // only for testing #77
 
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/multi/geometries/multi_point.hpp>
 #include <boost/geometry/multi/geometries/multi_linestring.hpp>
 #include <boost/geometry/multi/geometries/multi_polygon.hpp>
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -23,6 +23,7 @@
 #include <boost/geometry/domains/gis/io/wkt/read_wkt_multi.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/adapted/c_array.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <test_common/test_point.hpp>
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -24,6 +24,7 @@
 #include <boost/geometry/domains/gis/io/wkt/read_wkt_multi.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/adapted/c_array.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <test_common/test_point.hpp>
Modified: branches/release/libs/geometry/test/multi/algorithms/multi_equals.cpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/multi_equals.cpp	(original)
+++ branches/release/libs/geometry/test/multi/algorithms/multi_equals.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -8,9 +8,11 @@
 
 #include <algorithms/test_equals.hpp>
 
+#include <boost/geometry/multi/algorithms/area.hpp>
 #include <boost/geometry/multi/algorithms/equals.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/multi/geometries/multi_polygon.hpp>
 
 #include <boost/geometry/domains/gis/io/wkt/read_wkt_multi.hpp>
Modified: branches/release/libs/geometry/test/multi/algorithms/multi_for_each.cpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/multi_for_each.cpp	(original)
+++ branches/release/libs/geometry/test/multi/algorithms/multi_for_each.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -16,6 +16,7 @@
 #include <boost/geometry/geometries/ring.hpp>
 #include <boost/geometry/geometries/linestring.hpp>
 #include <boost/geometry/geometries/point.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/polygon.hpp>
 
 #include <boost/geometry/multi/geometries/multi_point.hpp>
Modified: branches/release/libs/geometry/test/multi/algorithms/multi_intersection.cpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/multi_intersection.cpp	(original)
+++ branches/release/libs/geometry/test/multi/algorithms/multi_intersection.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -20,6 +20,7 @@
 #include <boost/geometry/multi/algorithms/intersection.hpp>
 #include <boost/geometry/multi/algorithms/within.hpp> // only for testing #77
 
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/multi/geometries/multi_point.hpp>
 #include <boost/geometry/multi/geometries/multi_linestring.hpp>
 #include <boost/geometry/multi/geometries/multi_polygon.hpp>
Modified: branches/release/libs/geometry/test/multi/algorithms/multi_length.cpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/multi_length.cpp	(original)
+++ branches/release/libs/geometry/test/multi/algorithms/multi_length.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -11,6 +11,8 @@
 #include <boost/geometry/multi/multi.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/multi/geometries/multi_linestring.hpp>
 
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
Modified: branches/release/libs/geometry/test/multi/algorithms/multi_num_geometries.cpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/multi_num_geometries.cpp	(original)
+++ branches/release/libs/geometry/test/multi/algorithms/multi_num_geometries.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,6 +13,7 @@
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/multi/geometries/multi_point.hpp>
 #include <boost/geometry/multi/geometries/multi_linestring.hpp>
 #include <boost/geometry/multi/geometries/multi_polygon.hpp>
Modified: branches/release/libs/geometry/test/multi/algorithms/multi_num_interior_rings.cpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/multi_num_interior_rings.cpp	(original)
+++ branches/release/libs/geometry/test/multi/algorithms/multi_num_interior_rings.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,6 +13,7 @@
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/multi/geometries/multi_point.hpp>
 #include <boost/geometry/multi/geometries/multi_linestring.hpp>
 #include <boost/geometry/multi/geometries/multi_polygon.hpp>
Modified: branches/release/libs/geometry/test/multi/algorithms/multi_num_points.cpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/multi_num_points.cpp	(original)
+++ branches/release/libs/geometry/test/multi/algorithms/multi_num_points.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,6 +13,7 @@
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/multi/geometries/multi_point.hpp>
 #include <boost/geometry/multi/geometries/multi_linestring.hpp>
 #include <boost/geometry/multi/geometries/multi_polygon.hpp>
Modified: branches/release/libs/geometry/test/multi/algorithms/multi_perimeter.cpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/multi_perimeter.cpp	(original)
+++ branches/release/libs/geometry/test/multi/algorithms/multi_perimeter.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -12,6 +12,7 @@
 
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/multi/geometries/multi_polygon.hpp>
 
Modified: branches/release/libs/geometry/test/multi/algorithms/multi_reverse.cpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/multi_reverse.cpp	(original)
+++ branches/release/libs/geometry/test/multi/algorithms/multi_reverse.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,6 +13,7 @@
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 #include <boost/geometry/multi/geometries/multi_point.hpp>
 #include <boost/geometry/multi/geometries/multi_linestring.hpp>
Modified: branches/release/libs/geometry/test/multi/algorithms/multi_simplify.cpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/multi_simplify.cpp	(original)
+++ branches/release/libs/geometry/test/multi/algorithms/multi_simplify.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -17,6 +17,8 @@
 #include <boost/geometry/geometries/point.hpp>
 #include <boost/geometry/geometries/polygon.hpp>
 
+#include <boost/geometry/geometries/point_xy.hpp>
+
 #include <boost/geometry/multi/geometries/multi_point.hpp>
 #include <boost/geometry/multi/geometries/multi_linestring.hpp>
 #include <boost/geometry/multi/geometries/multi_polygon.hpp>
Modified: branches/release/libs/geometry/test/multi/algorithms/multi_transform.cpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/multi_transform.cpp	(original)
+++ branches/release/libs/geometry/test/multi/algorithms/multi_transform.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -20,6 +20,7 @@
 #include <boost/geometry/algorithms/transform.hpp>
 #include <boost/geometry/strategies/strategies.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 #include <boost/geometry/multi/algorithms/transform.hpp>
 
Modified: branches/release/libs/geometry/test/multi/algorithms/multi_union.cpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/multi_union.cpp	(original)
+++ branches/release/libs/geometry/test/multi/algorithms/multi_union.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -19,6 +19,7 @@
 #include <boost/geometry/multi/algorithms/intersection.hpp>
 #include <boost/geometry/multi/algorithms/within.hpp>
 
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/multi/geometries/multi_linestring.hpp>
 #include <boost/geometry/multi/geometries/multi_polygon.hpp>
 
Modified: branches/release/libs/geometry/test/multi/algorithms/multi_unique.cpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/multi_unique.cpp	(original)
+++ branches/release/libs/geometry/test/multi/algorithms/multi_unique.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -13,6 +13,7 @@
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 
 #include <boost/geometry/multi/geometries/multi_point.hpp>
 #include <boost/geometry/multi/geometries/multi_linestring.hpp>
Modified: branches/release/libs/geometry/test/multi/algorithms/multi_within.cpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/multi_within.cpp	(original)
+++ branches/release/libs/geometry/test/multi/algorithms/multi_within.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -18,6 +18,7 @@
 #include <boost/geometry/multi/core/point_order.hpp>
 #include <boost/geometry/multi/algorithms/within.hpp>
 
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/multi/geometries/multi_polygon.hpp>
 
 #include <algorithms/test_within.hpp>
Modified: branches/release/libs/geometry/test/ttmath.vsprops
==============================================================================
--- branches/release/libs/geometry/test/ttmath.vsprops	(original)
+++ branches/release/libs/geometry/test/ttmath.vsprops	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -7,7 +7,6 @@
         <Tool
                 Name="VCCLCompilerTool"
                 AdditionalIncludeDirectories=""$(TTMATH_ROOT)";"../$(TTMATH_ROOT)";"../../$(TTMATH_ROOT)""
-		PreprocessorDefinitions="HAVE_TTMATH"
         />
         <UserMacro
                 Name="TTMATH_ROOT"
Modified: branches/release/libs/geometry/test/views/box_view.cpp
==============================================================================
--- branches/release/libs/geometry/test/views/box_view.cpp	(original)
+++ branches/release/libs/geometry/test/views/box_view.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -22,18 +22,19 @@
 
 
 template <typename Box, bool Reverse>
-void test_geometry(std::string const& wkt, std::string const& expected)
+void test_geometry(std::string const& wkt, std::string const& expected, 
+            bg::order_selector expected_order)
 {
 
     Box box;
     bg::read_wkt(wkt, box);
 
-    typedef bg::box_view<Box, Reverse> range_type;
-    range_type range(box);
+    typedef bg::box_view<Box, Reverse> view_type;
+    view_type range(box);
 
     {
         std::ostringstream out;
-        for (typename boost::range_iterator<range_type>::type it = boost::begin(range);
+        for (typename boost::range_iterator<view_type>::type it = boost::begin(range);
             it != boost::end(range); ++it)
         {
             out << " " << bg::get<0>(*it) << bg::get<1>(*it);
@@ -43,7 +44,7 @@
 
     {
         // Check forward/backward behaviour
-        typename boost::range_iterator<range_type>::type it = boost::begin(range);
+        typename boost::range_iterator<view_type>::type it = boost::begin(range);
         it++;
         it--;
         // Not verified further, same as segment
@@ -56,16 +57,20 @@
     }
 
     // Check Boost.Range concept
-    BOOST_CONCEPT_ASSERT( (boost::RandomAccessRangeConcept<range_type>) );
+    BOOST_CONCEPT_ASSERT( (boost::RandomAccessRangeConcept<view_type>) );
+
+    // Check order
+    bg::order_selector order = bg::point_order<view_type>::value;
+    BOOST_CHECK_EQUAL(order, expected_order);
 }
 
 
 template <typename P>
 void test_all()
 {
-    test_geometry<bg::model::box<P>, true> ("polygon((1 1,2 2))", " 11 12 22 21 11");
-    test_geometry<bg::model::box<P>, false>("polygon((1 1,2 2))", " 11 21 22 12 11");
-    test_geometry<bg::model::box<P>, true> ("polygon((3 3,5 5))", " 33 35 55 53 33");
+    test_geometry<bg::model::box<P>, true> ("polygon((1 1,2 2))", " 11 12 22 21 11", bg::clockwise);
+    test_geometry<bg::model::box<P>, false>("polygon((1 1,2 2))", " 11 21 22 12 11", bg::counterclockwise);
+    test_geometry<bg::model::box<P>, true> ("polygon((3 3,5 5))", " 33 35 55 53 33", bg::clockwise);
 }
 
 
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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -19,6 +19,7 @@
 #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/point_xy.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-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -21,6 +21,7 @@
 #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/point_xy.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_view.cpp
==============================================================================
--- branches/release/libs/geometry/test/views/reversible_view.cpp	(original)
+++ branches/release/libs/geometry/test/views/reversible_view.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -19,6 +19,7 @@
 #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/point_xy.hpp>
 #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian);
Modified: branches/release/libs/geometry/test/views/segment_view.cpp
==============================================================================
--- branches/release/libs/geometry/test/views/segment_view.cpp	(original)
+++ branches/release/libs/geometry/test/views/segment_view.cpp	2011-05-22 10:23:38 EDT (Sun, 22 May 2011)
@@ -15,6 +15,7 @@
 #include <geometry_test_common.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
 #include <boost/geometry/views/segment_view.hpp>
 #include <boost/geometry/domains/gis/io/wkt/read_wkt.hpp>