$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r65210 - in sandbox/geometry/libs/geometry/doc/qbk: . reference snippets
From: barend.gehrels_at_[hidden]
Date: 2010-09-03 06:17:12
Author: barendgehrels
Date: 2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
New Revision: 65210
URL: http://svn.boost.org/trac/boost/changeset/65210
Log:
Quickbook Doc update
Added:
   sandbox/geometry/libs/geometry/doc/qbk/readme.txt   (contents, props changed)
   sandbox/geometry/libs/geometry/doc/qbk/reference/buffer.qbk   (contents, props changed)
   sandbox/geometry/libs/geometry/doc/qbk/reference/dissolve.qbk   (contents, props changed)
   sandbox/geometry/libs/geometry/doc/qbk/reference/num_geometries.qbk   (contents, props changed)
   sandbox/geometry/libs/geometry/doc/qbk/reference/num_interior_rings.qbk   (contents, props changed)
   sandbox/geometry/libs/geometry/doc/qbk/reference/num_points.qbk   (contents, props changed)
   sandbox/geometry/libs/geometry/doc/qbk/reference/register.qbk   (contents, props changed)
Text files modified: 
   sandbox/geometry/libs/geometry/doc/qbk/geometry.qbk                 |    41 ++++++-                                 
   sandbox/geometry/libs/geometry/doc/qbk/make_qbk.bat                 |    37 ++++--                                  
   sandbox/geometry/libs/geometry/doc/qbk/reference.qbk                |    76 +++++++------                           
   sandbox/geometry/libs/geometry/doc/qbk/reference/area.qbk           |    39 ++++--                                  
   sandbox/geometry/libs/geometry/doc/qbk/reference/centroid.qbk       |    46 +++++---                                
   sandbox/geometry/libs/geometry/doc/qbk/reference/combine.qbk        |     2                                         
   sandbox/geometry/libs/geometry/doc/qbk/reference/convert.qbk        |     4                                         
   sandbox/geometry/libs/geometry/doc/qbk/reference/convex_hull.qbk    |    18 ++-                                     
   sandbox/geometry/libs/geometry/doc/qbk/reference/difference.qbk     |     4                                         
   sandbox/geometry/libs/geometry/doc/qbk/reference/disjoint.qbk       |     8                                         
   sandbox/geometry/libs/geometry/doc/qbk/reference/distance.qbk       |    34 +++---                                  
   sandbox/geometry/libs/geometry/doc/qbk/reference/envelope.qbk       |    24 +++-                                    
   sandbox/geometry/libs/geometry/doc/qbk/reference/equals.qbk         |     8                                         
   sandbox/geometry/libs/geometry/doc/qbk/reference/intersection.qbk   |    80 ++++++++++----                          
   sandbox/geometry/libs/geometry/doc/qbk/reference/intersects.qbk     |    16 +-                                      
   sandbox/geometry/libs/geometry/doc/qbk/reference/length.qbk         |    26 ++--                                    
   sandbox/geometry/libs/geometry/doc/qbk/reference/overlaps.qbk       |     4                                         
   sandbox/geometry/libs/geometry/doc/qbk/reference/perimeter.qbk      |    14 +-                                      
   sandbox/geometry/libs/geometry/doc/qbk/reference/reverse.qbk        |     6                                         
   sandbox/geometry/libs/geometry/doc/qbk/reference/simplify.qbk       |    20 +-                                      
   sandbox/geometry/libs/geometry/doc/qbk/reference/sym_difference.qbk |     6                                         
   sandbox/geometry/libs/geometry/doc/qbk/reference/transform.qbk      |     8                                         
   sandbox/geometry/libs/geometry/doc/qbk/reference/union.qbk          |    12 +-                                      
   sandbox/geometry/libs/geometry/doc/qbk/reference/unique.qbk         |     7                                         
   sandbox/geometry/libs/geometry/doc/qbk/reference/within.qbk         |    14 +-                                      
   sandbox/geometry/libs/geometry/doc/qbk/snippets/qbk_1.cpp           |   212 ++++++++++++++++++++++++++++----------- 
   sandbox/geometry/libs/geometry/doc/qbk/snippets/qbk_1.vcproj        |     6                                         
   sandbox/geometry/libs/geometry/doc/qbk/snippets/qbk_2.cpp           |    12 ++                                      
   28 files changed, 496 insertions(+), 288 deletions(-)
Modified: sandbox/geometry/libs/geometry/doc/qbk/geometry.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/geometry.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/geometry.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -22,15 +22,39 @@
     [id geometry]
 ]
 
-
-[def __0dim__  0-dimensional (e.g. point)]
-[def __1dim__  1-dimensional (e.g. linestring)]
-[def __2dim__  2-dimensional (e.g. polygon)]
+[/Behavior]
+[def __0dim__  pointlike (e.g. point)]
+[def __1dim__  linear (e.g. linestring)]
+[def __2dim__  areal (e.g. polygon)]
+[def __single__  single (e.g. point, polygon)]
+[def __multi__  single (e.g. multi_point, multi_polygon)]
+[def __cart__  Cartesian]
+[def __sph__  Spherical]
+[def __geo__  Geographic]
+[def __rev__  Reversed polygon (coordinates not according their orientiation)]
 [def __empty__ Empty (e.g. polygon without points)]
+[def __box__  Rectangle]
+[def __point__  Point]
+[def __linestring__  Linestring]
+[def __polygon__  Polygon]
+[def __multi_polygon__  Multi-polygon]
+[def __range__  Rangelike (linestring, ring)]
+[def __other__  Other geometries]
+
+[/Parts]
+[def __ret_zero__ Returns zero]
+[def __ret_one__ Returns 1]
+[def __cs_units__ in the same units as the input coordinates]
+[def __sph1__ on a unit sphere (or another sphere, if specified as such in the constructor of the strategy)]
+[template qbk_ret[what] Returns [what]]
+[template qbk_out[what] GeometryOut is a [what]]
+
+
+[def __boost_geometry__     Boost.Geometry]
+[def __boost_gil__          [@http://www.boost.org/libs/gil/ Boost.GIL]]
 
-In progress
 
-Link to [link geometry.reference.models.point_xy point XY]
+[*In progress]
 
 
 [import snippets/qbk_1.cpp]
@@ -40,9 +64,8 @@
 [import snippets/qbk_5.cpp]
 
 
-[section Introduction]
-Documentation of Boost Geometry.
-[endsect]
+[include introduction.qbk]
+[include quickstart.qbk]
 
 [include matrix.qbk]
 [include reference.qbk]
Modified: sandbox/geometry/libs/geometry/doc/qbk/make_qbk.bat
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/make_qbk.bat	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/make_qbk.bat	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -14,37 +14,46 @@
 
 @echo off
 
+if a%1 == askip_doxygen goto skip_doxygen
+
 cd ..
 doxygen
 cd qbk
 
+:skip_doxygen
+
 set xml2qbk=..\..\..\..\other\programs\doxygen_xml2qbk\Release\doxygen_xml2qbk.exe
 set out=..\doxygen_output\xml
 
 :: Algorithms
-%xml2qbk% %out%\group__access.xml > reference\access.qbk
 %xml2qbk% %out%\group__area.xml > reference\area.qbk
+%xml2qbk% %out%\group__buffer.xml > reference\buffer.qbk
 %xml2qbk% %out%\group__centroid.xml > reference\centroid.qbk
-%xml2qbk% %out%\group__combine.xml > reference\combine.qbk
-%xml2qbk% %out%\group__convert.xml > reference\convert.qbk
 %xml2qbk% %out%\group__convex__hull.xml > reference\convex_hull.qbk
-%xml2qbk% %out%\group__difference.xml > reference\difference.qbk
-%xml2qbk% %out%\group__disjoint.xml > reference\disjoint.qbk
-%xml2qbk% %out%\group__distance.xml > reference\distance.qbk
+%xml2qbk% %out%\group__dissolve.xml > reference\dissolve.qbk
 %xml2qbk% %out%\group__envelope.xml > reference\envelope.qbk
-%xml2qbk% %out%\group__equals.xml > reference\equals.qbk
-%xml2qbk% %out%\group__for__each.xml > reference\for_each.qbk
-%xml2qbk% %out%\group__intersection.xml > reference\intersection.qbk
-%xml2qbk% %out%\group__intersects.xml > reference\intersects.qbk
 %xml2qbk% %out%\group__length.xml > reference\length.qbk
-%xml2qbk% %out%\group__overlaps.xml > reference\overlaps.qbk
+%xml2qbk% %out%\group__num__geometries.xml > reference\num_geometries.qbk
+%xml2qbk% %out%\group__num__interior__rings.xml > reference\num_interior_rings.qbk
+%xml2qbk% %out%\group__num__points.xml > reference\num_points.qbk
 %xml2qbk% %out%\group__perimeter.xml > reference\perimeter.qbk
 %xml2qbk% %out%\group__reverse.xml > reference\reverse.qbk
 %xml2qbk% %out%\group__simplify.xml > reference\simplify.qbk
-%xml2qbk% %out%\group__sym__difference.xml > reference\sym_difference.qbk
-%xml2qbk% %out%\group__transform.xml > reference\transform.qbk
-%xml2qbk% %out%\group__union.xml > reference\union.qbk
 %xml2qbk% %out%\group__unique.xml > reference\unique.qbk
+:: %xml2qbk% %out%\group__access.xml > reference\access.qbk
+:: %xml2qbk% %out%\group__combine.xml > reference\combine.qbk
+:: %xml2qbk% %out%\group__convert.xml > reference\convert.qbk
+:: %xml2qbk% %out%\group__difference.xml > reference\difference.qbk
+:: %xml2qbk% %out%\group__disjoint.xml > reference\disjoint.qbk
+%xml2qbk% %out%\group__distance.xml > reference\distance.qbk
+:: %xml2qbk% %out%\group__equals.xml > reference\equals.qbk
+:: %xml2qbk% %out%\group__for__each.xml > reference\for_each.qbk
+%xml2qbk% %out%\group__intersection.xml > reference\intersection.qbk
+%xml2qbk% %out%\group__intersects.xml > reference\intersects.qbk
+:: %xml2qbk% %out%\group__overlaps.xml > reference\overlaps.qbk
+:: %xml2qbk% %out%\group__sym__difference.xml > reference\sym_difference.qbk
+:: %xml2qbk% %out%\group__transform.xml > reference\transform.qbk
+:: %xml2qbk% %out%\group__union.xml > reference\union.qbk
 %xml2qbk% %out%\group__within.xml > reference\within.qbk
 
 %xml2qbk% %out%\group__register.xml > reference\register.qbk
Added: sandbox/geometry/libs/geometry/doc/qbk/readme.txt
==============================================================================
--- (empty file)
+++ sandbox/geometry/libs/geometry/doc/qbk/readme.txt	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -0,0 +1,14 @@
+To generate it, simulate as if it is already in Boost.Trunk, 
+by adding boostbook.dtd and html/callouts/etc,
+
+So folder structure should be like
+
+.../boost/sandbox/geometry/boost [normal]
+.../boost/sandbox/geometry/libs [normal]
+.../boost/sandbox/geometry/other [normal]
+.../boost/sandbox/geometry/libs/doc/html/images/*  [copy files from boost trunk]
+.../boost/sandbox/geometry/libs/doc/html/images/callouts/* [copy files from boost trunk]
+.../boost/sandbox/geometry/tools/boostbook/dtd/boostbook.dtd [copy file from boost trunk]
+
+
+- 
\ No newline at end of file
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -8,29 +8,33 @@
 [include reference/area.qbk]
 [endsect]
 
-[section:centroid centroid]
-[include reference/centroid.qbk]
+[section:buffer buffer]
+[include reference/buffer.qbk]
 [endsect]
 
-[section:combine combine]
-[include reference/combine.qbk]
+[section:centroid centroid]
+[include reference/centroid.qbk]
 [endsect]
 
-[section:convert convert]
-[include reference/convert.qbk]
-[endsect]
+[/section:combine combine]
+[/include reference/combine.qbk]
+[/endsect]
+
+[/section:convert convert]
+[/include reference/convert.qbk]
+[/endsect]
 
 [section:convex_hull convex_hull]
 [include reference/convex_hull.qbk]
 [endsect]
 
-[section:difference difference]
-[include reference/difference.qbk]
-[endsect]
-
-[section:disjoint disjoint]
-[include reference/disjoint.qbk]
-[endsect]
+[/section:difference difference]
+[/include reference/difference.qbk]
+[/endsect]
+
+[/section:disjoint disjoint]
+[/include reference/disjoint.qbk]
+[/endsect]
 
 [section:distance distance]
 [include reference/distance.qbk]
@@ -40,9 +44,9 @@
 [include reference/envelope.qbk]
 [endsect]
 
-[section:equals equals]
-[include reference/equals.qbk]
-[endsect]
+[/section:equals equals]
+[/include reference/equals.qbk]
+[/endsect]
 
 [/ section:for_each for_each]
 [/ include reference/for_each.qbk]
@@ -52,42 +56,44 @@
 [include reference/intersection.qbk]
 [endsect]
 
-[section:intersects intersects]
-[include reference/intersects.qbk]
-[endsect]
+[/section:intersects intersects]
+[/include reference/intersects.qbk]
+[/endsect]
 
 [section:length length]
 [include reference/length.qbk]
 [endsect]
 
-[section:overlaps overlaps]
-[include reference/overlaps.qbk]
-[endsect]
+[include reference/num_points.qbk]
+
+[/section:overlaps overlaps]
+[/include reference/overlaps.qbk]
+[/endsect]
 
 [section:perimeter perimeter]
 [include reference/perimeter.qbk]
 [endsect]
 
+[include reference/reverse.qbk]
+
 [section:simplify simplify]
 [include reference/simplify.qbk]
 [endsect]
 
-[section:sym_difference sym_difference]
-[include reference/sym_difference.qbk]
-[endsect]
-
-[section:transform transform]
-[include reference/transform.qbk]
-[endsect]
+[/section:sym_difference sym_difference]
+[/include reference/sym_difference.qbk]
+[/endsect]
+
+[/section:transform transform]
+[/include reference/transform.qbk]
+[/endsect]
 
 
-[section:union union]
-[include reference/union.qbk]
-[endsect]
+[/section:union union]
+[/include reference/union.qbk]
+[/endsect]
 
-[section:unique unique]
 [include reference/unique.qbk]
-[endsect]
 
 [section:within within]
 [include reference/within.qbk]
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/area.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/area.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/area.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -1,11 +1,11 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__area.xml]
-[section:area_1 area (1)]
+[section:area_1 area]
 
-Calculate area of a geometry. 
+Calculates the area of a geometry. 
 
 [heading Description]
-The function area returns the area of a polygon, ring, box using the default area-calculation strategy. Strategies are provided for cartesian and spherical coordinate systems The geometries should correct, polygons should be closed and according to the specified orientation (clockwise/counter clockwise) 
+The free function area calculates the area of a geometry. It uses the default strategy, based on the coordinate system of the geometry. 
 
 [heading Synopsis]
 ``template<typename Geometry>
@@ -15,7 +15,7 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [Any type fulfilling a Geometry concept ] [geometry] [A model of the specified concept ]]
+[[Geometry const &] [Any type fulfilling a Geometry Concept ] [geometry] [A model of the specified concept ]]
 ]
 
 
@@ -34,9 +34,12 @@
 [heading Behavior]
 [table
 [[Case] [Behavior] ]
-[[__0dim__][Returns zero]]
-[[__1dim__][Returns zero]]
-[[__2dim__][Returns the area]]
+[[__0dim__][[qbk_ret 0]]]
+[[__1dim__][[qbk_ret 0]]]
+[[__2dim__][[qbk_ret the area]]]
+[[__cart__][[qbk_ret the area] __cs_units__]]
+[[__sph__][[qbk_ret the area] __sph1__]]
+[[__rev__][[qbk_ret the negative area]]]
 ]
 
 
@@ -50,12 +53,12 @@
 
 [endsect]
 
-[section:area_2 area (2)]
+[section:area_2 area (with strategy)]
 
-Calculate area of a geometry using a specified strategy. 
+Calculates the area of a geometry using the specified strategy. 
 
 [heading Description]
-This version of area calculation takes a strategy 
+The free function area calculates the area of a geometry using the specified strategy. Reasons to specify a strategy include: use another coordinate system for calculations; construct the strategy beforehand (e.g. with the radius of the Earth); select a strategy when there are more than one available for a calculation (e.g. distance over the Earth) 
 
 [heading Synopsis]
 ``template<typename Geometry, typename Strategy>
@@ -65,8 +68,8 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [Any type fulfilling a Geometry concept ] [geometry] [A model of Geometry ]]
-[[Strategy const &] [A type fulfilling a AreaStrategy concept ] [strategy] [A strategy to calculate area. Especially for spherical and geographical area calculations there are various approaches. ]]
+[[Geometry const &] [Any type fulfilling a Geometry Concept ] [geometry] [A model of the specified concept ]]
+[[Strategy const &] [Any type fulfilling a Area Strategy Concept ] [strategy] [The strategy which will be used for area calculations ]]
 ]
 
 
@@ -85,15 +88,21 @@
 [heading Behavior]
 [table
 [[Case] [Behavior] ]
-[[__0dim__][Returns zero]]
-[[__1dim__][Returns zero]]
-[[__2dim__][Returns the area]]
+[[__0dim__][[qbk_ret 0]]]
+[[__1dim__][[qbk_ret 0]]]
+[[__2dim__][[qbk_ret the area]]]
+[[__cart__][[qbk_ret the area] __cs_units__]]
+[[__sph__][[qbk_ret the area] __sph1__]]
+[[__rev__][[qbk_ret the negative area]]]
 ]
 
 
 [heading Complexity]
 Linear
 
+[heading Snippets]
+[area_polygon_strategy]
+
 
 [endsect]
 
Added: sandbox/geometry/libs/geometry/doc/qbk/reference/buffer.qbk
==============================================================================
--- (empty file)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/buffer.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -0,0 +1,88 @@
+[/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
+[/ Generated from ..\doxygen_output\xml\group__buffer.xml]
+[section:buffer_4 buffer]
+
+Calculates the buffer of a geometry. 
+
+[heading Description]
+The free function buffer calculates the buffer (a polygon being the spatial point set collection within a specified maximum distance from a geometry) of a geometry. 
+
+[heading Synopsis]
+``template<typename Input, typename Output, typename Distance>
+void buffer (Input const &geometry_in, Output &geometry_out, Distance const &distance, Distance const &chord_length=-1)``
+
+[heading Parameters]
+
+[table
+[[Type] [Concept] [Name] [Description] ]
+[[Input const &] [Any type fulfilling a Geometry Concept ] [geometry_in] [A model of the specified concept ]]
+[[Output &] [Any type fulfilling a Geometry Concept ] [geometry_out] [A model of the specified concept ]]
+[[Distance const &] [Numerical type (int, double, ttmath, ...) ] [distance] [The distance to be used for the buffer ]]
+[[Distance const &] [Numerical type (int, double, ttmath, ...) ] [chord_length] [(optional) The length of the chord's in the generated arcs around points or bends ]]
+]
+
+
+[heading Header]
+Either
+
+`#include <boost/geometry/geometry.hpp>`
+
+Or
+
+`#include <boost/geometry/algorithms/buffer.hpp>`
+
+[heading Behavior]
+[table
+[[Case] [Behavior] ]
+[[__box__/__box__][Returns a new rectangular box, enlarged with the specified distance. It is allowed that "geometry_out" the same object as "geometry_in"]]
+]
+
+
+
+[endsect]
+
+[section:make_buffer_3 make_buffer]
+
+Calculates the buffer of a geometry. 
+
+[heading Description]
+The free function make_buffer calculates the buffer (a polygon being the spatial point set collection within a specified maximum distance from a geometry) of a geometry. This version with the make_ prefix returns the buffer, and a template parameter must therefore be specified in the call.. 
+
+[heading Synopsis]
+``template<typename Output, typename Input, typename T, >
+Output make_buffer (Input const &geometry, T const &distance, T const &chord_length=-1)``
+
+[heading Parameters]
+
+[table
+[[Type] [Concept] [Name] [Description] ]
+[[Output] [Any type fulfilling a Geometry Concept ] [ - ] [Must be specified]]
+[[Distance] [Numerical type (int, double, ttmath, ...) ] [ - ] [Must be specified]]
+[[Input const &] [Any type fulfilling a Geometry Concept ] [geometry] [A model of the specified concept ]]
+[[T const &] [] [distance] [The distance to be used for the buffer ]]
+[[T const &] [] [chord_length] [(optional) The length of the chord's in the generated arcs around points or bends ]]
+]
+
+
+[heading Returns]
+The calculated buffer 
+
+[heading Header]
+Either
+
+`#include <boost/geometry/geometry.hpp>`
+
+Or
+
+`#include <boost/geometry/algorithms/buffer.hpp>`
+
+[heading Behavior]
+[table
+[[Case] [Behavior] ]
+[[__box__/__box__][Returns a new rectangular box, enlarged with the specified distance. It is allowed that "geometry_out" the same object as "geometry_in"]]
+]
+
+
+
+[endsect]
+
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/centroid.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/centroid.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/centroid.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -1,8 +1,11 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__centroid.xml]
-[section:centroid_3 centroid (3)]
+[section:centroid_3 centroid (with strategy)]
 
-Calculate centroid using a specified strategy. 
+Calculates the centroid of a geometry using the specified strategy. 
+
+[heading Description]
+The free function centroid calculates the geometric center (or: center of mass) of a geometry 
 
 [heading Synopsis]
 ``template<typename Geometry, typename Point, typename Strategy>
@@ -12,9 +15,9 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [Any type fulfilling a Geometry concept ] [geometry] [A model of the specified concept ]]
-[[Point &] [Any type fulfilling a Point concept ] [c] [the calculated centroid will be assigned to this point reference ]]
-[[Strategy const &] [A type fulfilling a CentroidStrategy concept ] [strategy] [A strategy to calculate the centroid ]]
+[[Geometry const &] [Any type fulfilling a Geometry Concept ] [geometry] [A model of the specified concept ]]
+[[Point &] [Any type fulfilling a Point Concept ] [c] [A model of the specified Point Concept which is set to the centroid ]]
+[[Strategy const &] [Any type fulfilling a Centroid Strategy Concept ] [strategy] [The strategy which will be used for centroid calculations ]]
 ]
 
 
@@ -43,9 +46,12 @@
 
 [endsect]
 
-[section:centroid_2 centroid (2)]
+[section:centroid_2 centroid]
+
+Calculates the centroid of a geometry. 
 
-Calculate centroid. 
+[heading Description]
+The free function centroid calculates the geometric center (or: center of mass) of a geometry 
 
 [heading Synopsis]
 ``template<typename Geometry, typename Point>
@@ -55,8 +61,8 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [Any type fulfilling a Geometry concept ] [geometry] [A model of the specified concept ]]
-[[Point &] [Any type fulfilling a Point concept ] [c] [the calculated centroid will be assigned to this point reference]]
+[[Geometry const &] [Any type fulfilling a Geometry Concept ] [geometry] [A model of the specified concept ]]
+[[Point &] [Any type fulfilling a Point Concept ] [c] [the calculated centroid will be assigned to this point reference]]
 ]
 
 
@@ -85,9 +91,12 @@
 
 [endsect]
 
-[section:make_centroid_1 make_centroid (1)]
+[section:make_centroid_1 make_centroid]
 
-Calculate and return centroid. 
+Calculates the centroid of a geometry. 
+
+[heading Description]
+The free function centroid calculates the geometric center (or: center of mass) of a geometry. This version with the make_ prefix returns the centroid, and a template parameter must therefore be specified in the call.. 
 
 [heading Synopsis]
 ``template<typename Point, typename Geometry>
@@ -97,7 +106,8 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [Any type fulfilling a Geometry concept ] [geometry] [A model of the specified concept ]]
+[[Point] [Any type fulfilling a Point Concept ] [ - ] [Must be specified]]
+[[Geometry const &] [Any type fulfilling a Geometry Concept ] [geometry] [A model of the specified concept ]]
 ]
 
 
@@ -129,9 +139,12 @@
 
 [endsect]
 
-[section:make_centroid_2 make_centroid (2)]
+[section:make_centroid_2 make_centroid (with strategy)]
+
+Calculates the centroid of a geometry using the specified strategy. 
 
-Calculate and return centroid, using a specified strategy. 
+[heading Description]
+The free function centroid calculates the geometric center (or: center of mass) of a geometry. This version with the make_ prefix returns the centroid, and a template parameter must therefore be specified in the call.. 
 
 [heading Synopsis]
 ``template<typename Point, typename Geometry, typename Strategy>
@@ -141,8 +154,9 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [Any type fulfilling a Geometry concept ] [geometry] [A model of the specified concept ]]
-[[Strategy const &] [] [strategy] [Calculation strategy for centroid ]]
+[[Point] [Any type fulfilling a Point Concept ] [ - ] [Must be specified]]
+[[Geometry const &] [Any type fulfilling a Geometry Concept ] [geometry] [A model of the specified concept ]]
+[[Strategy const &] [Any type fulfilling a centroid Strategy Concept ] [strategy] [The strategy which will be used for centroid calculations ]]
 ]
 
 
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/combine.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/combine.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/combine.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -13,7 +13,7 @@
 [table
 [[Type] [Concept] [Name] [Description] ]
 [[Box &] [type of the box ] [box] [box to combine another geometry with, might be changed ]]
-[[Geometry const &] [of second geometry, to be combined with the box ] [geometry] [other geometry ]]
+[[Geometry const &] [Any type fulfilling a Geometry concept ] [geometry] [A model of the specified concept ]]
 ]
 
 
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/convert.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/convert.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/convert.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -12,8 +12,8 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1 const &] [first geometry type ] [geometry1] [first geometry (source) ]]
-[[Geometry2 &] [second geometry type ] [geometry2] [second geometry (target) ]]
+[[Geometry1 const &] [Any type fulfilling a Geometry concept ] [geometry1] [A model of the specified concept (source) ]]
+[[Geometry2 &] [Any type fulfilling a Geometry concept ] [geometry2] [A model of the specified concept (target) ]]
 ]
 
 
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/convex_hull.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/convex_hull.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/convex_hull.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -1,19 +1,22 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__convex__hull.xml]
-[section:convex_hull_2 convex_hull (2)]
+[section:convex_hull_2 convex_hull]
 
-Calculate the convex hull of a geometry. 
+Calculates the convex hull of a geometry. 
+
+[heading Description]
+The free function convex_hull calculates the convex hull of a geometry. 
 
 [heading Synopsis]
-``template<typename Geometry1, typename Geometry2, >
-void convex_hull (Geometry1 const &geometry, Geometry2 &out)``
+``template<typename Geometry1, typename Geometry2>
+void convex_hull (Geometry1 const &geometry, Geometry2 &hull)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1 const &] [the input geometry type ] [geometry] [the geometry to calculate convex hull from ]]
-[[Geometry2 &] [] [out] [a geometry receiving points of the convex hull ]]
+[[Geometry1 const &] [Any type fulfilling a Geometry Concept ] [geometry] [A model of the specified concept, used for input ]]
+[[Geometry2 &] [Any type fulfilling a Geometry Concept ] [hull] [A model of the specified concept which is set to the convex hull ]]
 ]
 
 
@@ -29,7 +32,7 @@
 
 [endsect]
 
-[section:convex_hull_inserter_2 convex_hull_inserter (2)]
+[section:convex_hull_inserter_2 convex_hull_inserter]
 
 Calculate the convex hull of a geometry, output-iterator version. 
 
@@ -41,6 +44,7 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
+[[:] [an output-iterator ] [ - ] [Must be specified]]
 [[Geometry const &] [the input geometry type ] [geometry] [the geometry to calculate convex hull from ]]
 [[OutputIterator] [] [out] [an output iterator outputing points of the convex hull ]]
 ]
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/difference.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/difference.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/difference.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -12,8 +12,8 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1 const &] [first geometry type ] [geometry1] [first geometry ]]
-[[Geometry2] [second geometry type ] [geometry2] [second geometry ]]
+[[Geometry1 const &] [Any type fulfilling a Geometry concept ] [geometry1] [A model of the specified concept ]]
+[[Geometry2] [Any type fulfilling a Geometry concept ] [geometry2] [A model of the specified concept ]]
 [[Collection &] [output collection, either a multi-geometry, or a std::vector<Geometry> / std::deque<Geometry> etc ] [output_collection] [the output collection ]]
 ]
 
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/disjoint.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/disjoint.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/disjoint.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -2,7 +2,7 @@
 [/ Generated from ..\doxygen_output\xml\group__disjoint.xml]
 [section:disjoint_2 disjoint (2)]
 
-Calculate if two geometries are disjoint. 
+Checks if two geometries are disjoint. 
 
 [heading Synopsis]
 ``template<typename Geometry1, typename Geometry2>
@@ -12,13 +12,13 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1 const &] [first geometry type ] [geometry1] [first geometry ]]
-[[Geometry2 const &] [second geometry type ] [geometry2] [second geometry ]]
+[[Geometry1 const &] [Any type fulfilling a Geometry concept ] [geometry1] [A model of the specified concept ]]
+[[Geometry2 const &] [Any type fulfilling a Geometry concept ] [geometry2] [A model of the specified concept ]]
 ]
 
 
 [heading Returns]
-true if disjoint, else false 
+Returns true if two geometries are disjoint 
 
 [heading Header]
 Either
Added: sandbox/geometry/libs/geometry/doc/qbk/reference/dissolve.qbk
==============================================================================
--- (empty file)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/dissolve.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -0,0 +1,2 @@
+[/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
+[/ Generated from ..\doxygen_output\xml\group__dissolve.xml]
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/distance.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/distance.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/distance.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -1,27 +1,27 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__distance.xml]
-[section:comparable_distance_2 comparable_distance (2)]
+[section:comparable_distance_2 comparable_distance]
 
-Calculate comparable distance measurement between two geometries. 
+Calculate the comparable distance measurement of two geometries. 
 
 [heading Description]
 The default strategy is used, belonging to the corresponding coordinate system of the geometries and the comparable strategy is used 
 
 [heading Synopsis]
-``template<typename Geometry1, typename Geometry2, , >
+``template<typename Geometry1, typename Geometry2>
 distance_result<Geometry1, Geometry2>::type comparable_distance (Geometry1 const &geometry1, Geometry2 const &geometry2)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1 const &] [] [geometry1] [first geometry ]]
-[[Geometry2 const &] [] [geometry2] [second geometry ]]
+[[Geometry1 const &] [first geometry type ] [geometry1] [A model of the specified concept ]]
+[[Geometry2 const &] [second geometry type ] [geometry2] [A model of the specified concept ]]
 ]
 
 
 [heading Returns]
-the comparable distance 
+The calculated comparable distance 
 
 [heading Header]
 Either
@@ -35,9 +35,9 @@
 
 [endsect]
 
-[section:distance_2 distance (2)]
+[section:distance_2 distance]
 
-Calculate distance between two geometries. 
+Calculate the distance of two geometries. 
 
 [heading Description]
 The default strategy is used, belonging to the corresponding coordinate system of the geometries 
@@ -50,13 +50,13 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1 const &] [first geometry type ] [geometry1] [first geometry ]]
-[[Geometry2 const &] [second geometry type ] [geometry2] [second geometry ]]
+[[Geometry1 const &] [Any type fulfilling a Geometry Concept ] [geometry1] [A model of the specified concept ]]
+[[Geometry2 const &] [Any type fulfilling a Geometry Concept ] [geometry2] [A model of the specified concept ]]
 ]
 
 
 [heading Returns]
-the distance (either a double or a distance result, convertable to double) 
+The calculated distance 
 
 [heading Header]
 Either
@@ -70,9 +70,9 @@
 
 [endsect]
 
-[section:distance_3 distance (3)]
+[section:distance_3 distance (with strategy)]
 
-Calculate distance between two geometries with a specified strategy. 
+Calculate the distance of two geometries using the specified strategy. 
 
 [heading Synopsis]
 ``template<typename Geometry1, typename Geometry2, typename Strategy>
@@ -82,14 +82,14 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1 const &] [first geometry type ] [geometry1] [first geometry ]]
-[[Geometry2 const &] [second geometry type ] [geometry2] [second geometry ]]
-[[Strategy const &] [point-point-distance strategy type ] [strategy] [strategy to calculate distance between two points ]]
+[[Geometry1 const &] [Any type fulfilling a Geometry Concept ] [geometry1] [A model of the specified concept ]]
+[[Geometry2 const &] [Any type fulfilling a Geometry Concept ] [geometry2] [A model of the specified concept ]]
+[[Strategy const &] [Any type fulfilling a distance Strategy Concept ] [strategy] [The strategy which will be used for distance calculations ]]
 ]
 
 
 [heading Returns]
-the distance 
+The calculated distance 
 
 [heading Header]
 Either
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/envelope.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/envelope.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/envelope.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -1,8 +1,11 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__envelope.xml]
-[section:envelope_2 envelope (2)]
+[section:envelope_2 envelope]
 
-Calculate envelope of a geometry. 
+Calculates the envelope of a geometry. 
+
+[heading Description]
+The free function envelope calculates the envelope (also known as axis aligned bounding box, aabb, or minimum bounding rectangle, mbr) of a geometry. 
 
 [heading Synopsis]
 ``template<typename Geometry, typename Box>
@@ -12,8 +15,8 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [] [geometry] [the geometry ]]
-[[Box &] [] [mbr] [the box receiving the envelope ]]
+[[Geometry const &] [Any type fulfilling a Geometry Concept ] [geometry] [A model of the specified concept ]]
+[[Box &] [Any type fulfilling a Box Concept ] [mbr] [A model of the specified Box Concept which is set to the envelope]]
 ]
 
 
@@ -29,9 +32,12 @@
 
 [endsect]
 
-[section:make_envelope_1 make_envelope (1)]
+[section:make_envelope_1 make_envelope]
+
+Calculates the envelope of a geometry. 
 
-Calculate and return envelope of a geometry. 
+[heading Description]
+The free function make_envelope calculates the envelope (also known as axis aligned bounding box, aabb, or minimum bounding rectangle, mbr) of a geometry. This version with the make_ prefix returns the envelope, and a template parameter must therefore be specified in the call. 
 
 [heading Synopsis]
 ``template<typename Box, typename Geometry>
@@ -41,10 +47,14 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [] [geometry] [the geometry ]]
+[[Box] [Any type fulfilling a Box Concept ] [ - ] [Must be specified]]
+[[Geometry const &] [Any type fulfilling a Geometry Concept ] [geometry] [A model of the specified concept ]]
 ]
 
 
+[heading Returns]
+The calculated envelope 
+
 [heading Header]
 Either
 
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/equals.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/equals.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/equals.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -2,7 +2,7 @@
 [/ Generated from ..\doxygen_output\xml\group__equals.xml]
 [section:equals_2 equals (2)]
 
-Detect if two geometries are spatially equal. 
+Checks if a geometry are spatially equal. 
 
 [heading Synopsis]
 ``template<typename Geometry1, typename Geometry2>
@@ -12,13 +12,13 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1 const &] [first geometry type ] [geometry1] [first geometry ]]
-[[Geometry2 const &] [second geometry type ] [geometry2] [second geometry ]]
+[[Geometry1 const &] [Any type fulfilling a Geometry concept ] [geometry1] [A model of the specified concept ]]
+[[Geometry2 const &] [Any type fulfilling a Geometry concept ] [geometry2] [A model of the specified concept ]]
 ]
 
 
 [heading Returns]
-true if geometries are spatially equal, else false 
+Returns true if two geometries are spatially disjoint 
 
 [heading Header]
 Either
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/intersection.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/intersection.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/intersection.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -1,11 +1,11 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__intersection.xml]
-[section:intersection_3 intersection (3)]
+[section:intersection_3 intersection]
 
-Intersects two geometries. 
+Calculate the intersection of two geometries. 
 
 [heading Description]
-The two input geometries are intersected and the resulting linestring(s), ring(s) or polygon(s) are added to the specified collection. 
+The free function intersection calculates the spatial set theoretic intersection of two geometries. 
 
 [heading Synopsis]
 ``template<typename Geometry1, typename Geometry2, typename Collection>
@@ -15,15 +15,12 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1 const &] [first geometry type ] [geometry1] [first geometry ]]
-[[Geometry2 const &] [second geometry type ] [geometry2] [second geometry ]]
-[[Collection &] [collection of rings, polygons (e.g. a vector<polygon> or a ] [output_collection] [the collection ]]
+[[Geometry1 const &] [Any type fulfilling a Geometry Concept ] [geometry1] [A model of the specified concept ]]
+[[Geometry2 const &] [Any type fulfilling a Geometry Concept ] [geometry2] [A model of the specified concept ]]
+[[Collection &] [Collection of geometries (e.g. std::vector, std::deque, boost::geometry::multi*) of which the value_type (below referred to as 'GeometryOut') fulfills a Point, LineString or Polygon concept. ] [output_collection] [The collection being filled or extended by the algorithm]]
 ]
 
 
-[heading Returns]
-true if successful 
-
 [heading Header]
 Either
 
@@ -33,15 +30,27 @@
 
 `#include <boost/geometry/algorithms/intersection.hpp>`
 
+[heading Behavior]
+[table
+[[Case] [Behavior] ]
+[[[qbk_out __point__]][Calculates intersection points of input geometries]]
+[[[qbk_out __linestring__]][Calculates intersection linestrings of input geometries (NYI)]]
+[[[qbk_out __polygon__]][Calculates intersection polygons input (multi)polygons and/or boxes]]
+]
+
+
+[heading Snippets]
+[intersection_linestring]
+
 
 [endsect]
 
-[section:intersection_inserter_4 intersection_inserter (4)]
+[section:intersection_inserter_4 intersection_inserter (with strategy)]
 
-Intersects two geometries. 
+Calculate the intersection of two geometries using the specified strategy. 
 
 [heading Description]
-The two input geometries are intersected and the resulting linestring(s), ring(s) or polygon(s) are sent to the specified output operator. 
+The free function intersection_inserter calculates the spatial set theoretic intersection of two geometries using the specified strategy. This version with the _inserter suffix outputs the intersection to an output iterator, and a template parameter must therefore be specified in the call. 
 
 [heading Synopsis]
 ``template<typename GeometryOut, typename Geometry1, typename Geometry2, typename OutputIterator, typename Strategy>
@@ -51,15 +60,16 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1 const &] [first geometry type ] [geometry1] [first geometry ]]
-[[Geometry2 const &] [second geometry type ] [geometry2] [second geometry ]]
-[[OutputIterator] [output iterator ] [out] [the output iterator, outputting linestrings or polygons ]]
-[[Strategy const &] [compound strategy for intersection ] [strategy] [the strategy ]]
+[[GeometryOut] [A type fulfilling a Point, LineString or Polygon Concept ] [ - ] [Must be specified]]
+[[Geometry1 const &] [Any type fulfilling a Geometry Concept ] [geometry1] [A model of the specified concept ]]
+[[Geometry2 const &] [Any type fulfilling a Geometry Concept ] [geometry2] [A model of the specified concept ]]
+[[OutputIterator] [A valid output iterator type, accepting geometries of Point, LineString or Polygon Concept ] [out] [The output iterator, to which intersection geometries are feeded ]]
+[[Strategy const &] [Compound strategy for intersection ] [strategy] [The strategy ]]
 ]
 
 
 [heading Returns]
-the output iterator 
+The output iterator
 
 [heading Header]
 Either
@@ -70,15 +80,24 @@
 
 `#include <boost/geometry/algorithms/intersection.hpp>`
 
+[heading Behavior]
+[table
+[[Case] [Behavior] ]
+[[[qbk_out __point__]][Calculates intersection points of input geometries]]
+[[[qbk_out __linestring__]][Calculates intersection linestrings of input geometries (NYI)]]
+[[[qbk_out __polygon__]][Calculates intersection polygons input (multi)polygons and/or boxes]]
+]
+
+
 
 [endsect]
 
-[section:intersection_inserter_3 intersection_inserter (3)]
+[section:intersection_inserter_3 intersection_inserter]
 
-Intersects two geometries. 
+Calculate the intersection of two geometries. 
 
 [heading Description]
-The two input geometries are intersected and the resulting linestring(s), ring(s) or polygon(s) are sent to the specified output operator. 
+The free function intersection_inserter calculates the spatial set theoretic intersection of two geometries. This version with the _inserter suffix outputs the intersection to an output iterator, and a template parameter must therefore be specified in the call. 
 
 [heading Synopsis]
 ``template<typename GeometryOut, typename Geometry1, typename Geometry2, typename OutputIterator>
@@ -88,14 +107,15 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1 const &] [first geometry type ] [geometry1] [first geometry ]]
-[[Geometry2 const &] [second geometry type ] [geometry2] [second geometry ]]
-[[OutputIterator] [output iterator ] [out] [the output iterator, outputting linestrings or polygons ]]
+[[GeometryOut] [A type fulfilling a Point, LineString or Polygon Concept ] [ - ] [Must be specified]]
+[[Geometry1 const &] [Any type fulfilling a Geometry Concept ] [geometry1] [A model of the specified concept ]]
+[[Geometry2 const &] [Any type fulfilling a Geometry Concept ] [geometry2] [A model of the specified concept ]]
+[[OutputIterator] [A valid output iterator type, accepting geometries of Point, LineString or Polygon Concept ] [out] [The output iterator, to which intersection geometries are feeded ]]
 ]
 
 
 [heading Returns]
-the output iterator 
+The output iterator
 
 [heading Header]
 Either
@@ -106,6 +126,18 @@
 
 `#include <boost/geometry/algorithms/intersection.hpp>`
 
+[heading Behavior]
+[table
+[[Case] [Behavior] ]
+[[[qbk_out __point__]][Calculates intersection points of input geometries]]
+[[[qbk_out __linestring__]][Calculates intersection linestrings of input geometries (NYI)]]
+[[[qbk_out __polygon__]][Calculates intersection polygons input (multi)polygons and/or boxes]]
+]
+
+
+[heading Snippets]
+[intersection_segment_inserter]
+
 
 [endsect]
 
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/intersects.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/intersects.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/intersects.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -1,8 +1,8 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__intersects.xml]
-[section:intersects_1 intersects (1)]
+[section:intersects_1 intersects]
 
-Determine if there is at least one intersection (crossing or self-tangency). 
+Checks if a geometry at least one intersection(crossing or self-tangency). 
 
 [heading Synopsis]
 ``template<typename Geometry>
@@ -17,7 +17,7 @@
 
 
 [heading Returns]
-true if there are intersections, else false 
+Returns true if the geometry is self-intersecting 
 
 [heading Header]
 Either
@@ -31,9 +31,9 @@
 
 [endsect]
 
-[section:intersects_2 intersects (2)]
+[section:intersects_2 intersects]
 
-Determine if there is at least one intersection. 
+Checks if two geometries have at least one intersection. 
 
 [heading Synopsis]
 ``template<typename Geometry1, typename Geometry2>
@@ -43,13 +43,13 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1 const &] [first geometry type ] [geometry1] [first geometry ]]
-[[Geometry2 const &] [second geometry type ] [geometry2] [second geometry ]]
+[[Geometry1 const &] [Any type fulfilling a Geometry Concept ] [geometry1] [A model of the specified concept ]]
+[[Geometry2 const &] [Any type fulfilling a Geometry Concept ] [geometry2] [A model of the specified concept ]]
 ]
 
 
 [heading Returns]
-true if there are intersection(s), else false 
+Returns true if two geometries intersect each other 
 
 [heading Header]
 Either
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/length.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/length.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/length.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -1,8 +1,8 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__length.xml]
-[section:length_1 length (1)]
+[section:length_1 length]
 
-Calculate length of a geometry. 
+Calculates the length of a geometry. 
 
 [heading Description]
 The version without a strategy takes the default distance-calculation-strategy to calculate distances between consecutive points of a geometry, summing them to the length of the geometry 
@@ -15,7 +15,7 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [Any type fulfilling a Geometry concept ] [geometry] [A model of the specified concept ]]
+[[Geometry const &] [Any type fulfilling a Geometry Concept ] [geometry] [A model of the specified concept ]]
 ]
 
 
@@ -34,9 +34,9 @@
 [heading Behavior]
 [table
 [[Case] [Behavior] ]
-[[__0dim__][Returns zero]]
-[[__1dim__][Returns the length]]
-[[__2dim__][Returns zero]]
+[[__0dim__][[qbk_ret 0]]]
+[[__1dim__][[qbk_ret the length]]]
+[[__2dim__][[qbk_ret 0]]]
 ]
 
 
@@ -46,9 +46,9 @@
 
 [endsect]
 
-[section:length_2 length (2)]
+[section:length_2 length (with strategy)]
 
-Calculate length of a geometry. 
+Calculates the length of a geometry using the specified strategy. 
 
 [heading Description]
 The version with a specified strategy uses that strategy to calculate distances between consecutive points, summing them to the length of the geometry. Reasons to specify a strategy include: use another coordinate system for calculations; construct the strategy beforehand (e.g. with the radius of the Earth); select a strategy when there are more than one available for a calculation (e.g. distance over the Earth) 
@@ -61,8 +61,8 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [Any type fulfilling a Geometry concept ] [geometry] [A model of the specified concept ]]
-[[Strategy const &] [A type fulfilling a DistanceStrategy concept ] [strategy] [A strategy to be used for distance calculations. ]]
+[[Geometry const &] [Any type fulfilling a Geometry Concept ] [geometry] [A model of the specified concept ]]
+[[Strategy const &] [Any type fulfilling a distance Strategy Concept ] [strategy] [The strategy which will be used for distance calculations ]]
 ]
 
 
@@ -81,9 +81,9 @@
 [heading Behavior]
 [table
 [[Case] [Behavior] ]
-[[__0dim__][Returns zero]]
-[[__1dim__][Returns the length]]
-[[__2dim__][Returns zero]]
+[[__0dim__][[qbk_ret 0]]]
+[[__1dim__][[qbk_ret the length]]]
+[[__2dim__][[qbk_ret 0]]]
 ]
 
 
Added: sandbox/geometry/libs/geometry/doc/qbk/reference/num_geometries.qbk
==============================================================================
--- (empty file)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/num_geometries.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -0,0 +1,47 @@
+[/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
+[/ Generated from ..\doxygen_output\xml\group__num__geometries.xml]
+[section:num_geometries num_geometries]
+
+Calculates the number of geometries of a geometry. 
+
+[heading Description]
+The free function num_geometries calculates the number of geometries of a geometry. 
+
+[heading Synopsis]
+``template<typename Geometry>
+std::size_t num_geometries (Geometry const &geometry)``
+
+[heading Parameters]
+
+[table
+[[Type] [Concept] [Name] [Description] ]
+[[Geometry const &] [Any type fulfilling a Geometry Concept ] [geometry] [A model of the specified concept ]]
+]
+
+
+[heading Returns]
+The calculated number of geometries
+
+[heading Header]
+Either
+
+`#include <boost/geometry/geometry.hpp>`
+
+Or
+
+`#include <boost/geometry/core/num_geometries.hpp>`
+
+[heading Behavior]
+[table
+[[Case] [Behavior] ]
+[[__single__][[qbk_ret 1]]]
+[[__multi__][Returns boost::size(geometry); the input is considered as a range]]
+]
+
+
+[heading Complexity]
+Constant
+
+
+[endsect]
+
Added: sandbox/geometry/libs/geometry/doc/qbk/reference/num_interior_rings.qbk
==============================================================================
--- (empty file)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/num_interior_rings.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -0,0 +1,45 @@
+[/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
+[/ Generated from ..\doxygen_output\xml\group__num__interior__rings.xml]
+[section:num_interior_rings num_interior_rings]
+
+Calculates the number of interior rings of a geometry. 
+
+[heading Synopsis]
+``template<typename Geometry>
+std::size_t num_interior_rings (Geometry const &geometry)``
+
+[heading Parameters]
+
+[table
+[[Type] [Concept] [Name] [Description] ]
+[[Geometry const &] [Any type fulfilling a Geometry Concept ] [geometry] [A model of the specified concept ]]
+]
+
+
+[heading Returns]
+The calculated number of interior rings
+
+[heading Header]
+Either
+
+`#include <boost/geometry/geometry.hpp>`
+
+Or
+
+`#include <boost/geometry/core/interior_rings.hpp>`
+
+[heading Behavior]
+[table
+[[Case] [Behavior] ]
+[[__polygon__][[qbk_ret number of its interior rings]]]
+[[__multi_polygon__][[qbk_ret number of the interior rings of all polygons]]]
+[[__other__][[qbk_ret 0]]]
+]
+
+
+[heading Complexity]
+Constant
+
+
+[endsect]
+
Added: sandbox/geometry/libs/geometry/doc/qbk/reference/num_points.qbk
==============================================================================
--- (empty file)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/num_points.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -0,0 +1,49 @@
+[/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
+[/ Generated from ..\doxygen_output\xml\group__num__points.xml]
+[section:num_points num_points]
+
+Calculates the number of points of a geometry. 
+
+[heading Description]
+The free function num_points calculates the number of points of a geometry. 
+
+[heading Synopsis]
+``template<typename Geometry>
+std::size_t num_points (Geometry const &geometry)``
+
+[heading Parameters]
+
+[table
+[[Type] [Concept] [Name] [Description] ]
+[[Geometry const &] [Any type fulfilling a Geometry Concept ] [geometry] [A model of the specified concept ]]
+]
+
+
+[heading Returns]
+The calculated number of points
+
+[heading Header]
+Either
+
+`#include <boost/geometry/geometry.hpp>`
+
+Or
+
+`#include <boost/geometry/algorithms/num_points.hpp>`
+
+[heading Behavior]
+[table
+[[Case] [Behavior] ]
+[[__point__][[qbk_ret 1]]]
+[[__box__][[qbk_ret 1]]]
+[[__range__][[qbk_ret boost::size(geometry)]]]
+[[__other__][[qbk_ret the sum of the number of points of its elements]]]
+]
+
+
+[heading Complexity]
+Constant or Linear
+
+
+[endsect]
+
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/overlaps.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/overlaps.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/overlaps.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -2,7 +2,7 @@
 [/ Generated from ..\doxygen_output\xml\group__overlaps.xml]
 [section:overlaps_2 overlaps (2)]
 
-Determines overlap between two geometries. 
+Checks if two geometries overlap. 
 
 [heading Synopsis]
 ``template<typename Geometry1, typename Geometry2>
@@ -18,7 +18,7 @@
 
 
 [heading Returns]
-true if there is overlap 
+Returns true if two geometries overlap 
 
 [heading Header]
 Either
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/perimeter.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/perimeter.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/perimeter.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -1,8 +1,8 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__perimeter.xml]
-[section:perimeter_1 perimeter (1)]
+[section:perimeter_1 perimeter]
 
-Calculate perimeter of a geometry. 
+Calculates the perimeter of a geometry. 
 
 [heading Description]
 The function perimeter returns the perimeter of a geometry, using the default distance-calculation-strategy 
@@ -15,7 +15,7 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [Any type fulfilling a Geometry concept ] [geometry] [A model of the specified concept ]]
+[[Geometry const &] [Any type fulfilling a Geometry Concept ] [geometry] [A model of the specified concept ]]
 ]
 
 
@@ -46,9 +46,9 @@
 
 [endsect]
 
-[section:perimeter_2 perimeter (2)]
+[section:perimeter_2 perimeter (with strategy)]
 
-Calculate perimeter of a geometry. 
+Calculates the perimeter of a geometry using the specified strategy. 
 
 [heading Description]
 The function perimeter returns the perimeter of a geometry, using specified strategy 
@@ -61,8 +61,8 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [Any type fulfilling a Geometry concept ] [geometry] [A model of the specified concept ]]
-[[Strategy const &] [A type fulfilling a DistanceStrategy concept ] [strategy] [strategy to be used for distance calculations. ]]
+[[Geometry const &] [Any type fulfilling a Geometry Concept ] [geometry] [A model of the specified concept ]]
+[[Strategy const &] [Any type fulfilling a distance Strategy Concept ] [strategy] [strategy to be used for distance calculations. ]]
 ]
 
 
Added: sandbox/geometry/libs/geometry/doc/qbk/reference/register.qbk
==============================================================================
--- (empty file)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/register.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -0,0 +1,201 @@
+[/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
+[/ Generated from ..\doxygen_output\xml\group__register.xml]
+[section:BOOST_GEOMETRY_REGISTER_POINT_2D_5 BOOST_GEOMETRY_REGISTER_POINT_2D]
+
+Macro to register a custom 2D point. 
+
+[heading Synopsis]
+``#define BOOST_GEOMETRY_REGISTER_POINT_2D(Point, CoordinateType, CoordinateSystem, Field0, Field1)``
+
+[heading Parameters]
+
+[table
+[[Name] [Description] ]
+[[Point] [Point type to be registered ]]
+[[CoordinateType] [Type of the coordinates of the point ]]
+[[CoordinateSystem] [Coordinate system (e.g. cs::cartesian) ]]
+[[Field0] [Member containing first (usually x) coordinate ]]
+[[Field1] [Member containing second (usually y) coordinate]]
+]
+
+
+[heading Header]
+Either
+
+`#include <boost/geometry/geometry.hpp>`
+
+Or
+
+`#include <boost/geometry/geometries/register/point.hpp>`
+
+[caution Use the macro outside any namespace]
+[note A point can include a namespace]
+[heading Snippets]
+[boost_geometry_register_point_2d]
+
+
+[endsect]
+
+[section:BOOST_GEOMETRY_REGISTER_POINT_2D_CONST_5 BOOST_GEOMETRY_REGISTER_POINT_2D_CONST]
+
+Macro to register a custom 2D point (CONST version). 
+
+[heading Synopsis]
+``#define BOOST_GEOMETRY_REGISTER_POINT_2D_CONST(Point, CoordinateType, CoordinateSystem, Field0, Field1)``
+
+[heading Parameters]
+
+[table
+[[Name] [Description] ]
+[[Point] []]
+[[CoordinateType] []]
+[[CoordinateSystem] []]
+[[Field0] []]
+[[Field1] []]
+]
+
+
+[heading Header]
+Either
+
+`#include <boost/geometry/geometry.hpp>`
+
+Or
+
+`#include <boost/geometry/geometries/register/point.hpp>`
+
+
+[endsect]
+
+[section:BOOST_GEOMETRY_REGISTER_POINT_2D_GET_SET_7 BOOST_GEOMETRY_REGISTER_POINT_2D_GET_SET]
+
+Macro to register a custom 2D point (having separate get/set methods). 
+
+[heading Synopsis]
+``#define BOOST_GEOMETRY_REGISTER_POINT_2D_GET_SET(Point, CoordinateType, CoordinateSystem, Get0, Get1, Set0, Set1)``
+
+[heading Parameters]
+
+[table
+[[Name] [Description] ]
+[[Point] []]
+[[CoordinateType] []]
+[[CoordinateSystem] []]
+[[Get0] []]
+[[Get1] []]
+[[Set0] []]
+[[Set1] []]
+]
+
+
+[heading Header]
+Either
+
+`#include <boost/geometry/geometry.hpp>`
+
+Or
+
+`#include <boost/geometry/geometries/register/point.hpp>`
+
+
+[endsect]
+
+[section:BOOST_GEOMETRY_REGISTER_POINT_3D_6 BOOST_GEOMETRY_REGISTER_POINT_3D]
+
+Macro to register a custom 3D point. 
+
+[heading Synopsis]
+``#define BOOST_GEOMETRY_REGISTER_POINT_3D(Point, CoordinateType, CoordinateSystem, Field0, Field1, Field2)``
+
+[heading Parameters]
+
+[table
+[[Name] [Description] ]
+[[Point] []]
+[[CoordinateType] []]
+[[CoordinateSystem] []]
+[[Field0] []]
+[[Field1] []]
+[[Field2] []]
+]
+
+
+[heading Header]
+Either
+
+`#include <boost/geometry/geometry.hpp>`
+
+Or
+
+`#include <boost/geometry/geometries/register/point.hpp>`
+
+
+[endsect]
+
+[section:BOOST_GEOMETRY_REGISTER_POINT_3D_CONST_6 BOOST_GEOMETRY_REGISTER_POINT_3D_CONST]
+
+Macro to register a custom 3D point (CONST version). 
+
+[heading Synopsis]
+``#define BOOST_GEOMETRY_REGISTER_POINT_3D_CONST(Point, CoordinateType, CoordinateSystem, Field0, Field1, Field2)``
+
+[heading Parameters]
+
+[table
+[[Name] [Description] ]
+[[Point] []]
+[[CoordinateType] []]
+[[CoordinateSystem] []]
+[[Field0] []]
+[[Field1] []]
+[[Field2] []]
+]
+
+
+[heading Header]
+Either
+
+`#include <boost/geometry/geometry.hpp>`
+
+Or
+
+`#include <boost/geometry/geometries/register/point.hpp>`
+
+
+[endsect]
+
+[section:BOOST_GEOMETRY_REGISTER_POINT_3D_GET_SET_9 BOOST_GEOMETRY_REGISTER_POINT_3D_GET_SET]
+
+Macro to register a custom 3D point (having separate get/set methods). 
+
+[heading Synopsis]
+``#define BOOST_GEOMETRY_REGISTER_POINT_3D_GET_SET(Point, CoordinateType, CoordinateSystem, Get0, Get1, Get2, Set0, Set1, Set2)``
+
+[heading Parameters]
+
+[table
+[[Name] [Description] ]
+[[Point] []]
+[[CoordinateType] []]
+[[CoordinateSystem] []]
+[[Get0] []]
+[[Get1] []]
+[[Get2] []]
+[[Set0] []]
+[[Set1] []]
+[[Set2] []]
+]
+
+
+[heading Header]
+Either
+
+`#include <boost/geometry/geometry.hpp>`
+
+Or
+
+`#include <boost/geometry/geometries/register/point.hpp>`
+
+
+[endsect]
+
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/reverse.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/reverse.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/reverse.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -1,8 +1,8 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__reverse.xml]
-[section:reverse_1 reverse (1)]
-
+[section:reverse reverse]
 
+Reverses a geometry. 
 
 [heading Synopsis]
 ``template<typename Geometry>
@@ -12,7 +12,7 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry &] [geometry type ] [geometry] [the geometry to make reverse ]]
+[[Geometry &] [Any type fulfilling a Geometry Concept ] [geometry] [A model of the specified concept which will be reversed ]]
 ]
 
 
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/simplify.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/simplify.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/simplify.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -1,6 +1,6 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__simplify.xml]
-[section:simplify_4 simplify (4)]
+[section:simplify_4 simplify (with strategy)]
 
 Simplify a geometry using a specified strategy. 
 
@@ -13,8 +13,8 @@
 [table
 [[Type] [Concept] [Name] [Description] ]
 [[Strategy const &] [A type fulfilling a SimplifyStrategy concept ] [strategy] [simplify strategy to be used for simplification, might include point-distance strategy]]
-[[Geometry const &] [Any type fulfilling a Geometry concept ] [geometry] [input geometry, to be simplified ]]
-[[Geometry &] [Any type fulfilling a Geometry concept ] [out] [output geometry, simplified version of the input geometry ]]
+[[Geometry const &] [Any type fulfilling a Geometry Concept ] [geometry] [input geometry, to be simplified ]]
+[[Geometry &] [Any type fulfilling a Geometry Concept ] [out] [output geometry, simplified version of the input geometry ]]
 [[Distance const &] [A numerical distance measure ] [max_distance] [distance (in units of input coordinates) of a vertex to other segments to be removed ]]
 ]
 
@@ -36,7 +36,7 @@
 
 [endsect]
 
-[section:simplify_3 simplify (3)]
+[section:simplify_3 simplify]
 
 Simplify a geometry. 
 
@@ -48,8 +48,8 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [Any type fulfilling a Geometry concept ] [geometry] [input geometry, to be simplified ]]
-[[Geometry &] [Any type fulfilling a Geometry concept ] [out] [output geometry, simplified version of the input geometry ]]
+[[Geometry const &] [Any type fulfilling a Geometry Concept ] [geometry] [input geometry, to be simplified ]]
+[[Geometry &] [Any type fulfilling a Geometry Concept ] [out] [output geometry, simplified version of the input geometry ]]
 [[Distance const &] [Numerical type (int, double, ttmath, ...) ] [max_distance] [distance (in units of input coordinates) of a vertex to other segments to be removed]]
 ]
 
@@ -69,7 +69,7 @@
 
 [endsect]
 
-[section:simplify_inserter_4 simplify_inserter (4)]
+[section:simplify_inserter_4 simplify_inserter (with strategy)]
 
 Simplify a geometry, using an output iterator and a specified strategy. 
 
@@ -81,7 +81,7 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [Any type fulfilling a Geometry concept ] [geometry] [input geometry, to be simplified ]]
+[[Geometry const &] [Any type fulfilling a Geometry Concept ] [geometry] [input geometry, to be simplified ]]
 [[OutputIterator] [] [out] [output iterator, outputs all simplified points ]]
 [[Distance const &] [] [max_distance] [distance (in units of input coordinates) of a vertex to other segments to be removed ]]
 [[Strategy const &] [] [strategy] [simplify strategy to be used for simplification, might include point-distance strategy ]]
@@ -106,7 +106,7 @@
 
 [endsect]
 
-[section:simplify_inserter_3 simplify_inserter (3)]
+[section:simplify_inserter_3 simplify_inserter]
 
 Simplify a geometry, using an output iterator. 
 
@@ -118,7 +118,7 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [Any type fulfilling a Geometry concept ] [geometry] [input geometry, to be simplified ]]
+[[Geometry const &] [Any type fulfilling a Geometry Concept ] [geometry] [input geometry, to be simplified ]]
 [[OutputIterator] [] [out] [output iterator, outputs all simplified points ]]
 [[Distance const &] [] [max_distance] [distance (in units of input coordinates) of a vertex to other segments to be removed]]
 ]
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/sym_difference.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/sym_difference.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/sym_difference.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -2,7 +2,7 @@
 [/ Generated from ..\doxygen_output\xml\group__sym__difference.xml]
 [section:sym_difference_3 sym_difference (3)]
 
-
+calculates2{symmetric difference} 
 
 [heading Synopsis]
 ``template<typename Geometry1, typename Geometry2, typename Collection>
@@ -12,8 +12,8 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1] [first geometry type ] [geometry1] [first geometry ]]
-[[Geometry2] [second geometry type ] [geometry2] [second geometry ]]
+[[Geometry1] [Any type fulfilling a Geometry concept ] [geometry1] [A model of the specified concept ]]
+[[Geometry2] [Any type fulfilling a Geometry concept ] [geometry2] [A model of the specified concept ]]
 [[Collection &] [output collection, either a multi-geometry, or a std::vector<Geometry> / std::deque<Geometry> etc ] [output_collection] [the output collection ]]
 ]
 
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/transform.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/transform.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/transform.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -12,8 +12,8 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1 const &] [first geometry type ] [geometry1] [first geometry ]]
-[[Geometry2 &] [second geometry type ] [geometry2] [second geometry ]]
+[[Geometry1 const &] [Any type fulfilling a Geometry concept ] [geometry1] [A model of the specified concept ]]
+[[Geometry2 &] [Any type fulfilling a Geometry concept ] [geometry2] [A model of the specified concept ]]
 [[Strategy const &] [strategy ] [strategy] [the strategy to be used for transformation ]]
 ]
 
@@ -42,8 +42,8 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1 const &] [first geometry type ] [geometry1] [first geometry ]]
-[[Geometry2 &] [second geometry type ] [geometry2] [second geometry ]]
+[[Geometry1 const &] [Any type fulfilling a Geometry concept ] [geometry1] [A model of the specified concept ]]
+[[Geometry2 &] [Any type fulfilling a Geometry concept ] [geometry2] [A model of the specified concept ]]
 ]
 
 
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/union.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/union.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/union.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -12,8 +12,8 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1 const &] [first geometry type ] [geometry1] [first geometry ]]
-[[Geometry2 const &] [second geometry type ] [geometry2] [second geometry ]]
+[[Geometry1 const &] [Any type fulfilling a Geometry concept ] [geometry1] [A model of the specified concept ]]
+[[Geometry2 const &] [Any type fulfilling a Geometry concept ] [geometry2] [A model of the specified concept ]]
 [[Collection &] [output collection, either a multi-geometry, or a std::vector<Geometry> / std::deque<Geometry> etc ] [output_collection] [the output collection ]]
 ]
 
@@ -42,8 +42,8 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1 const &] [first geometry type ] [geometry1] [first geometry ]]
-[[Geometry2 const &] [second geometry type ] [geometry2] [second geometry ]]
+[[Geometry1 const &] [Any type fulfilling a Geometry concept ] [geometry1] [A model of the specified concept ]]
+[[Geometry2 const &] [Any type fulfilling a Geometry concept ] [geometry2] [A model of the specified concept ]]
 [[OutputIterator] [output iterator ] [out] [the output iterator, outputting polygons ]]
 [[Strategy const &] [compound strategy for intersection ] [strategy] [the strategy ]]
 ]
@@ -76,8 +76,8 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1 const &] [first geometry type ] [geometry1] [first geometry ]]
-[[Geometry2 const &] [second geometry type ] [geometry2] [second geometry ]]
+[[Geometry1 const &] [Any type fulfilling a Geometry concept ] [geometry1] [A model of the specified concept ]]
+[[Geometry2 const &] [Any type fulfilling a Geometry concept ] [geometry2] [A model of the specified concept ]]
 [[OutputIterator] [output iterator ] [out] [the output iterator, outputting polygons ]]
 ]
 
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/unique.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/unique.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/unique.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -1,8 +1,11 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__unique.xml]
-[section:unique_1 unique (1)]
+[section:unique unique]
 
+Calculates the minimal set of a geometry. 
 
+[heading Description]
+The free function unique calculates the minimal set (where duplicate consecutive points are removed) of a geometry. 
 
 [heading Synopsis]
 ``template<typename Geometry>
@@ -12,7 +15,7 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry &] [geometry type ] [geometry] [the geometry to make unique ]]
+[[Geometry &] [Any type fulfilling a Geometry Concept ] [geometry] [A model of the specified concept which will be made unique ]]
 ]
 
 
Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/within.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/within.qbk	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/within.qbk	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -1,8 +1,8 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__within.xml]
-[section:within_2 within (2)]
+[section:within_2 within]
 
-Within, examine if a geometry is within another geometry. 
+Checks if the first geometry completely inside the second geometry. 
 
 [heading Synopsis]
 ``template<typename Geometry1, typename Geometry2>
@@ -12,8 +12,8 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1 const &] [] [geometry1] [geometry which might be within the second geometry ]]
-[[Geometry2 const &] [] [geometry2] [geometry which might contain the first geometry ]]
+[[Geometry1 const &] [Any type fulfilling a Geometry Concept ] [geometry1] [geometry which might be within the second geometry ]]
+[[Geometry2 const &] [Any type fulfilling a Geometry Concept ] [geometry2] [geometry which might contain the first geometry ]]
 ]
 
 
@@ -32,7 +32,7 @@
 
 [endsect]
 
-[section:within_3 within (3)]
+[section:within_3 within (with strategy)]
 
 Within, examine if a geometry is within another geometry, using a specified strategy. 
 
@@ -44,8 +44,8 @@
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1 const &] [] [geometry1] [geometry which might be within the second geometry ]]
-[[Geometry2 const &] [] [geometry2] [geometry which might contain the first geometry ]]
+[[Geometry1 const &] [Any type fulfilling a Geometry Concept ] [geometry1] [A model of the specified concept geometry which might be within the second geometry ]]
+[[Geometry2 const &] [Any type fulfilling a Geometry Concept ] [geometry2] [A model of the specified concept which might contain the first geometry ]]
 [[Strategy const &] [] [strategy] [strategy to be used ]]
 ]
 
Modified: sandbox/geometry/libs/geometry/doc/qbk/snippets/qbk_1.cpp
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/snippets/qbk_1.cpp	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/snippets/qbk_1.cpp	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -17,13 +17,14 @@
 
 #include <boost/geometry/geometry.hpp>
 #include <boost/geometry/geometries/register/point.hpp>
+#include <boost/geometry/geometries/register/segment.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 #include <boost/geometry/geometries/adapted/std_as_linestring.hpp>
 
 #include <boost/geometry/extensions/gis/io/wkt/wkt.hpp>
 
 
-void example_point()
+void snippet_point()
 {
     struct custom_cs {};
 
@@ -49,7 +50,8 @@
 
 BOOST_GEOMETRY_REGISTER_POINT_2D(legacy_point, double, boost::geometry::cs::cartesian, x, y); /*< The magic: adapt it to Boost.Geometry Point Concept >*/
 
-void foo1()
+/*<-*/ namespace boost_geometry_register_point_2d { /*->*/
+void foo()
 {
     legacy_point p1, p2;
 
@@ -59,13 +61,11 @@
     bg::assign(p2, 2, 2);
     double d = bg::distance(p1, p2);
 }
-
 //]
+} // namespace
 
 
-// All functions below are referred to in the documentation of Boost.Geometry
-// Don't rename them.
-void example_area_polygon()
+void snippet_area_polygon()
 {
     //[area_polygon
     //` Calculate the area of a polygon
@@ -76,10 +76,10 @@
     //]
 }
 
-void example_area_polygon_spherical()
+void snippet_area_polygon_spherical()
 {
     //[area_polygon_spherical
-    //` Calculate the area of a *spherical* polygon
+    //` Calculate the area of a [*spherical] polygon
     namespace bg = boost::geometry;
     bg::polygon<bg::point<float, 2, bg::cs::spherical<bg::degree> > > sph_poly;
     bg::read_wkt("POLYGON((0 0,0 45,45 0,0 0))", sph_poly);
@@ -87,9 +87,25 @@
     //]
 }
 
+void snippet_area_polygon_strategy()
+{
+    //[area_polygon_strategy
+    //` Calculate the area of a polygon specifying a strategy
+    namespace bg = boost::geometry;
+    typedef bg::point<float, 2, bg::cs::spherical<bg::degree> > pnt_type;
+    bg::polygon<pnt_type> hawaii;
+    bg::read_wkt("POLYGON((-155.86 18.93,-155.84 20.30,-154.80 19.52,-155.86 18.93))" /*< [@http://en.wikipedia.org/wiki/Hawaii_%28island%29 Rough appromation of Hawaii Island] >*/
+        , hawaii); 
+    double const mean_radius = 6371.0; /*< [@http://en.wikipedia.org/wiki/Earth_radius Wiki]  >*/
+    bg::strategy::area::huiller<pnt_type> in_square_kilometers(mean_radius);
+    double area = bg::area(hawaii, in_square_kilometers);
+    
+    //]
+}
+
 
 
-void example_as_wkt_point()
+void snippet_as_wkt_point()
 {
     typedef boost::geometry::point_xy<double> P;
     P p(5.12, 6.34);
@@ -103,7 +119,7 @@
     std::cout << boost::geometry::wkt(p) << std::endl;
 }
 
-void example_as_wkt_vector()
+void snippet_as_wkt_vector()
 {
     std::vector<boost::geometry::point_xy<int> > v;
     boost::geometry::read_wkt<boost::geometry::point_xy<int> >("linestring(1 1,2 2,3 3,4 4)", std::back_inserter(v));
@@ -112,7 +128,7 @@
 }
 
 
-void example_centroid_polygon()
+void snippet_centroid_polygon()
 {
     boost::geometry::polygon<boost::geometry::point_xy<double> > poly;
     boost::geometry::read_wkt("POLYGON((0 0,0 7,4 2,2 0,0 0))", poly);
@@ -123,7 +139,7 @@
 }
 
 
-void example_distance_point_point()
+void snippet_distance_point_point()
 {
     boost::geometry::point_xy<double> p1(1, 1);
     boost::geometry::point_xy<double> p2(2, 3);
@@ -144,7 +160,7 @@
     */
 }
 
-void example_distance_point_point_strategy()
+void snippet_distance_point_point_strategy()
 {
     /*
     Extension, other coordinate system:
@@ -161,35 +177,35 @@
     */
 }
 
-void example_from_wkt_point()
+void snippet_from_wkt_point()
 {
     boost::geometry::point_xy<int> point;
     boost::geometry::read_wkt("Point(1 2)", point);
     std::cout << point.x() << "," << point.y() << std::endl;
 }
 
-void example_from_wkt_output_iterator()
+void snippet_from_wkt_output_iterator()
 {
     std::vector<boost::geometry::point_xy<int> > v;
     boost::geometry::read_wkt<boost::geometry::point_xy<int> >("linestring(1 1,2 2,3 3,4 4)", std::back_inserter(v));
     std::cout << "vector has " << v.size() << " coordinates" << std::endl;
 }
 
-void example_from_wkt_linestring()
+void snippet_from_wkt_linestring()
 {
     boost::geometry::linestring<boost::geometry::point_xy<double> > line;
     boost::geometry::read_wkt("linestring(1 1,2 2,3 3,4 4)", line);
     std::cout << "linestring has " << line.size() << " coordinates" << std::endl;
 }
 
-void example_from_wkt_polygon()
+void snippet_from_wkt_polygon()
 {
     boost::geometry::polygon<boost::geometry::point_xy<double> > poly;
     boost::geometry::read_wkt("POLYGON((0 0,0 1,1 1,1 0,0 0))", poly);
     std::cout << "Polygon has " << poly.outer().size() << " coordinates in outer ring" << std::endl;
 }
 
-void example_point_ll_convert()
+void snippet_point_ll_convert()
 {
     /*
     Extension, other coordinate system:
@@ -201,7 +217,72 @@
     */
 }
 
-void example_clip_linestring1()
+void snippet_intersection_linestring()
+{
+    //[intersection_linestring
+    typedef boost::geometry::point_xy<double> P;
+    std::vector<P> line1, line2;
+    boost::geometry::read_wkt("linestring(1 1,2 2)", line1);
+    boost::geometry::read_wkt("linestring(2 1,1 2)", line2);
+
+    std::deque<P> intersection_points;
+    boost::geometry::intersection(line1, line2, intersection_points);
+    //]
+}
+
+void snippet_intersects_linestring()
+{
+    typedef boost::geometry::point_xy<double> P;
+    std::vector<P> line1, line2;
+    boost::geometry::read_wkt("linestring(1 1,2 2)", line1);
+    boost::geometry::read_wkt("linestring(2 1,1 2)", line2);
+
+    bool b = boost::geometry::intersects(line1, line2);
+}
+
+
+
+void snippet_intersection_segment()
+{
+    typedef boost::geometry::point_xy<double> P;
+    boost::geometry::model::segment<P> segment1, segment2;
+    boost::geometry::read_wkt("linestring(1 1,2 2)", segment1);
+    boost::geometry::read_wkt("linestring(2 1,1 2)", segment2);
+
+    std::vector<P> intersections;
+    boost::geometry::intersection(segment1, segment2, intersections);
+}
+
+void snippet_intersection_inserter_segment()
+{
+    //[intersection_segment_inserter
+
+    typedef boost::geometry::point_xy<double> P;
+    boost::geometry::model::segment<P> segment1, segment2;
+    boost::geometry::read_wkt("linestring(1 1,2 2)", segment1);
+    boost::geometry::read_wkt("linestring(2 1,1 2)", segment2);
+
+    std::vector<P> intersections;
+    boost::geometry::intersection_inserter<P>(segment1, segment2, std::back_inserter(intersections));
+    //` The vector [*intersection] now contains one point: the intersection of the two segments.
+    //` If segments do not intersect, the vector is empty.
+    //` If segments happen to be collinear, the vector  contains two points.
+
+    //]
+}
+
+void snippet_intersects_segment()
+{
+    typedef boost::geometry::point_xy<double> P;
+    custom_segment<P> line1, line2;
+    boost::geometry::read_wkt("linestring(1 1,2 2)", line1);
+    boost::geometry::read_wkt("linestring(2 1,1 2)", line2);
+
+    bool b = boost::geometry::intersects(line1, line2);
+}
+
+
+void snippet_clip_linestring1()
 {
     typedef boost::geometry::point_xy<double> P;
     boost::geometry::linestring<P> line;
@@ -213,7 +294,7 @@
     boost::geometry::intersection_inserter<boost::geometry::linestring<P> >(cb, line, std::back_inserter(intersection));
 }
 
-void example_clip_linestring2()
+void snippet_clip_linestring2()
 {
     typedef boost::geometry::point_xy<double> P;
     std::vector<P> vector_in;
@@ -237,7 +318,7 @@
 
 
 
-void example_intersection_polygon1()
+void snippet_intersection_polygon1()
 {
     typedef boost::geometry::point_xy<double> P;
     typedef std::vector<boost::geometry::polygon<P> > PV;
@@ -257,7 +338,7 @@
     }
 }
 
-void example_simplify_linestring1()
+void snippet_simplify_linestring1()
 {
     //[simplify
     //` Simplify a linestring
@@ -270,7 +351,7 @@
     //]
 }
 
-void example_simplify_linestring2()
+void snippet_simplify_linestring2()
 {
     //[simplify_inserter
     //` Simplify a linestring using an output iterator
@@ -288,7 +369,7 @@
 
 
 
-void example_within()
+void snippet_within()
 {
     boost::geometry::polygon<boost::geometry::point_xy<double> > poly;
     boost::geometry::read_wkt("POLYGON((0 0,0 7,4 2,2 0,0 0))", poly);
@@ -300,7 +381,7 @@
 }
 
 /*
-void example_within_strategy()
+void snippet_within_strategy()
 {
     // TO BE UPDATED/FINISHED
     typedef boost::geometry::point_xy<double> P;
@@ -310,7 +391,7 @@
 }
 */
 
-void example_length_linestring()
+void snippet_length_linestring()
 {
     using namespace boost::geometry;
     linestring<point_xy<double> > line;
@@ -340,7 +421,7 @@
         */
 }
 
-void example_length_linestring_iterators1()
+void snippet_length_linestring_iterators1()
 {
     boost::geometry::linestring<boost::geometry::point_xy<double> > line;
     boost::geometry::read_wkt("linestring(0 0,1 1,4 8,3 2)", line);
@@ -349,7 +430,7 @@
         << " units" << std::endl;
 }
 
-void example_length_linestring_iterators2()
+void snippet_length_linestring_iterators2()
 {
     std::vector<boost::geometry::point_xy<double> > line;
     boost::geometry::read_wkt<boost::geometry::point_xy<double> >("linestring(0 0,1 1,4 8,3 2)", std::back_inserter(line));
@@ -358,7 +439,7 @@
         << " units" << std::endl;
 }
 
-void example_length_linestring_iterators3()
+void snippet_length_linestring_iterators3()
 {
     /*
     Extension, other coordinate system:
@@ -373,7 +454,7 @@
 }
 
 
-void example_length_linestring_strategy()
+void snippet_length_linestring_strategy()
 {
     /*
     Extension, other coordinate system:
@@ -390,7 +471,7 @@
 }
 
 
-void example_envelope_linestring()
+void snippet_envelope_linestring()
 {
     boost::geometry::linestring<boost::geometry::point_xy<double> > line;
     boost::geometry::read_wkt("linestring(0 0,1 1,4 8,3 2)", line);
@@ -400,7 +481,7 @@
     std::cout << "envelope is " << boost::geometry::dsv(box) << std::endl;
 }
 
-void example_envelope_polygon()
+void snippet_envelope_polygon()
 {
     /*
     Extension, other coordinate system:
@@ -431,7 +512,7 @@
 }
 
 
-void example_dms()
+void snippet_dms()
 {
     /*
     Extension, other coordinate system:
@@ -455,7 +536,7 @@
     */
 }
 
-void example_point_ll_construct()
+void snippet_point_ll_construct()
 {
     /*
     Extension, other coordinate system:
@@ -477,44 +558,53 @@
 
 int main(void)
 {
-    example_point();
+    snippet_point();
+
+    snippet_area_polygon();
+    snippet_area_polygon_spherical();
+    snippet_area_polygon_strategy();
+
+    snippet_centroid_polygon();
+
+    snippet_intersection_linestring();
+    snippet_intersects_linestring();
+    snippet_intersection_segment();
+    snippet_intersection_inserter_segment();
+    snippet_intersects_segment();
 
-    example_area_polygon();
-    example_area_polygon_spherical();
 
-    example_centroid_polygon();
+    snippet_distance_point_point();
+    snippet_distance_point_point_strategy();
 
-    example_distance_point_point();
-    example_distance_point_point_strategy();
+    snippet_from_wkt_point();
+    snippet_from_wkt_output_iterator();
+    snippet_from_wkt_linestring();
+    snippet_from_wkt_polygon();
 
-    example_from_wkt_point();
-    example_from_wkt_output_iterator();
-    example_from_wkt_linestring();
-    example_from_wkt_polygon();
+    snippet_as_wkt_point();
 
-    example_as_wkt_point();
+    snippet_clip_linestring1();
+    snippet_clip_linestring2();
+    snippet_intersection_polygon1();
 
-    example_clip_linestring1();
-    example_clip_linestring2();
-    example_intersection_polygon1();
+    snippet_simplify_linestring1();
+    snippet_simplify_linestring2();
 
-    example_simplify_linestring1();
-    example_simplify_linestring2();
+    snippet_length_linestring();
+    snippet_length_linestring_iterators1();
+    snippet_length_linestring_iterators2();
+    snippet_length_linestring_iterators3();
+    snippet_length_linestring_strategy();
 
-    example_length_linestring();
-    example_length_linestring_iterators1();
-    example_length_linestring_iterators2();
-    example_length_linestring_iterators3();
-    example_length_linestring_strategy();
+    snippet_envelope_linestring();
+    snippet_envelope_polygon();
 
-    example_envelope_linestring();
-    example_envelope_polygon();
+    snippet_within();
 
-    example_within();
+    snippet_point_ll_convert();
+    snippet_point_ll_construct();
+    snippet_dms();
 
-    example_point_ll_convert();
-    example_point_ll_construct();
-    example_dms();
 
     boost_geometry_register_point_2d::foo();
 
Modified: sandbox/geometry/libs/geometry/doc/qbk/snippets/qbk_1.vcproj
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/snippets/qbk_1.vcproj	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/snippets/qbk_1.vcproj	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -88,7 +88,6 @@
                         />
                         <Tool
                                 Name="VCPostBuildEventTool"
-				CommandLine=""
                         />
                 </Configuration>
                 <Configuration
@@ -121,7 +120,7 @@
                                 PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
                                 RuntimeLibrary="2"
                                 UsePrecompiledHeader="0"
-				DebugInformationFormat="3"
+				DebugInformationFormat="0"
                         />
                         <Tool
                                 Name="VCManagedResourceCompilerTool"
@@ -136,7 +135,7 @@
                                 Name="VCLinkerTool"
                                 AdditionalDependencies="kernel32.lib $(NoInherit)"
                                 LinkIncremental="1"
-				GenerateDebugInformation="true"
+				GenerateDebugInformation="false"
                                 SubSystem="1"
                                 OptimizeReferences="2"
                                 EnableCOMDATFolding="2"
@@ -165,7 +164,6 @@
                         />
                         <Tool
                                 Name="VCPostBuildEventTool"
-				CommandLine="cd ../doc
doxygen
"
                         />
                 </Configuration>
         </Configurations>
Modified: sandbox/geometry/libs/geometry/doc/qbk/snippets/qbk_2.cpp
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/snippets/qbk_2.cpp	(original)
+++ sandbox/geometry/libs/geometry/doc/qbk/snippets/qbk_2.cpp	2010-09-03 06:17:00 EDT (Fri, 03 Sep 2010)
@@ -85,24 +85,32 @@
 
 void example_for_main_page()
 {
+
+    //[main1
+    //` Snippets below assume the namespace boost::geometry is known
     using namespace boost::geometry;
 
+    //` It should be possible to use a very small part of the library, for example only the distance between two points. 
     int a[2] = {1,1};
     int b[2] = {2,3};
     double d = distance(a, b);
     std::cout << "Distance a-b is:" << d << std::endl;
 
-    ring_2d poly;
+    //` Other often used algorithms are point-in-polygon:
     double points[][2] = {{2.0, 1.3}, {4.1, 3.0}, {5.3, 2.6}, {2.9, 0.7}, {2.0, 1.3}};
     append(poly, points);
     boost::tuple<double, double> p = boost::make_tuple(3.7, 2.0);
     std::cout << "Point p is in polygon? " << (within(p, poly) ? "YES" : "NO")  << std::endl;
 
+    //` or area: 
     std::cout << "Area: " << area(poly) << std::endl;
 
+    //` It is possible, by the nature of a template library, to mix the point types declared above: 
     double d2 = distance(a, p);
     std::cout << "Distance a-p is:" << d2 << std::endl;
 
+    //]
+
     /***
     Now extension
     point_ll_deg  amsterdam, paris;
@@ -111,12 +119,14 @@
     std::cout << "Distance A'dam-Paris: " << distance(amsterdam, paris) / 1000.0 << " kilometers " << std::endl;
     ***/
 
+    //[main3
     QRect r1(100, 200, 15, 15);
     QRect r2(110, 210, 20, 20);
     if (overlaps(r1, r2))
     {
         assign(r2, 200, 300, 220, 320);
     }
+    //]
 }