Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r64844 - in sandbox/geometry: boost/geometry/algorithms boost/geometry/geometries/concepts libs/geometry/doc libs/geometry/doc/qbk libs/geometry/doc/qbk/reference libs/geometry/example/extensions/gis/io/shapelib libs/geometry/test/iterators other/programs/doxygen_xml2qbk
From: barend.gehrels_at_[hidden]
Date: 2010-08-16 08:56:39


Author: barendgehrels
Date: 2010-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
New Revision: 64844
URL: http://svn.boost.org/trac/boost/changeset/64844

Log:
Doc update
Text files modified:
   sandbox/geometry/boost/geometry/algorithms/area.hpp | 8 +
   sandbox/geometry/boost/geometry/algorithms/centroid.hpp | 53 +++++++---
   sandbox/geometry/boost/geometry/algorithms/length.hpp | 66 ++++++++-----
   sandbox/geometry/boost/geometry/algorithms/perimeter.hpp | 36 ++++---
   sandbox/geometry/boost/geometry/geometries/concepts/polygon_concept.hpp | 3
   sandbox/geometry/libs/geometry/doc/Doxyfile | 13 +-
   sandbox/geometry/libs/geometry/doc/qbk/Jamfile.v2 | 5
   sandbox/geometry/libs/geometry/doc/qbk/geometry.qbk | 6 +
   sandbox/geometry/libs/geometry/doc/qbk/make_qbk.bat | 3
   sandbox/geometry/libs/geometry/doc/qbk/quickref.xml | 10 -
   sandbox/geometry/libs/geometry/doc/qbk/reference/access.qbk | 194 +++++++++++++--------------------------
   sandbox/geometry/libs/geometry/doc/qbk/reference/area.qbk | 66 +++++++++----
   sandbox/geometry/libs/geometry/doc/qbk/reference/centroid.qbk | 116 ++++++++++++++++-------
   sandbox/geometry/libs/geometry/doc/qbk/reference/closing_iterator.qbk | 3
   sandbox/geometry/libs/geometry/doc/qbk/reference/combine.qbk | 3
   sandbox/geometry/libs/geometry/doc/qbk/reference/convert.qbk | 3
   sandbox/geometry/libs/geometry/doc/qbk/reference/convex_hull.qbk | 6 -
   sandbox/geometry/libs/geometry/doc/qbk/reference/difference.qbk | 3
   sandbox/geometry/libs/geometry/doc/qbk/reference/disjoint.qbk | 3
   sandbox/geometry/libs/geometry/doc/qbk/reference/distance.qbk | 15 +-
   sandbox/geometry/libs/geometry/doc/qbk/reference/envelope.qbk | 6 -
   sandbox/geometry/libs/geometry/doc/qbk/reference/equals.qbk | 3
   sandbox/geometry/libs/geometry/doc/qbk/reference/for_each.qbk | 40 ++++----
   sandbox/geometry/libs/geometry/doc/qbk/reference/intersection.qbk | 32 +++---
   sandbox/geometry/libs/geometry/doc/qbk/reference/intersects.qbk | 32 ++---
   sandbox/geometry/libs/geometry/doc/qbk/reference/length.qbk | 58 ++++++++---
   sandbox/geometry/libs/geometry/doc/qbk/reference/overlaps.qbk | 3
   sandbox/geometry/libs/geometry/doc/qbk/reference/perimeter.qbk | 58 ++++++++---
   sandbox/geometry/libs/geometry/doc/qbk/reference/point_xy.qbk | 3
   sandbox/geometry/libs/geometry/doc/qbk/reference/reverse.qbk | 3
   sandbox/geometry/libs/geometry/doc/qbk/reference/simplify.qbk | 88 +++++++++---------
   sandbox/geometry/libs/geometry/doc/qbk/reference/sym_difference.qbk | 3
   sandbox/geometry/libs/geometry/doc/qbk/reference/transform.qbk | 24 +---
   sandbox/geometry/libs/geometry/doc/qbk/reference/union.qbk | 23 +---
   sandbox/geometry/libs/geometry/doc/qbk/reference/unique.qbk | 3
   sandbox/geometry/libs/geometry/doc/qbk/reference/within.qbk | 24 +---
   sandbox/geometry/libs/geometry/example/extensions/gis/io/shapelib/shapelib.cpp | 9 +
   sandbox/geometry/libs/geometry/test/iterators/iterators.sln | 6 -
   sandbox/geometry/other/programs/doxygen_xml2qbk/doxygen_xml2qbk.cpp | 114 +++++++++++++++++-----
   39 files changed, 616 insertions(+), 531 deletions(-)

Modified: sandbox/geometry/boost/geometry/algorithms/area.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/algorithms/area.hpp (original)
+++ sandbox/geometry/boost/geometry/algorithms/area.hpp 2010-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -205,11 +205,15 @@
 The geometries should correct, polygons should be closed
 and according to the specified orientation (clockwise/counter clockwise)
 \tparam Geometry \geometry_concept
-\param geometry A model of Geometry
+\param geometry \geometry_model
 \return The calculated area
 
 \qbk{snippet,area_polygon}
 \qbk{snippet,area_polygon_spherical}
+\qbk{behavior,__0dim__:Returns zero}
+\qbk{behavior,__1dim__:Returns zero}
+\qbk{behavior,__2dim__:Returns the area}
+\qbk{complexity,Linear}
  */
 template <typename Geometry>
 inline typename area_result<Geometry>::type area(Geometry const& geometry)
@@ -237,6 +241,8 @@
     Especially for spherical and geographical area calculations there
     are various approaches.
 \return The calculated area
+
+\qbk{complexity,Linear}
  */
 template <typename Geometry, typename Strategy>
 inline typename Strategy::return_type area(

Modified: sandbox/geometry/boost/geometry/algorithms/centroid.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/algorithms/centroid.hpp (original)
+++ sandbox/geometry/boost/geometry/algorithms/centroid.hpp 2010-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -45,7 +45,7 @@
 
     virtual char const* what() const throw()
     {
- return "GGL Centroid calculation exception";
+ return "Boost.Geometry Centroid calculation exception";
     }
 };
 
@@ -353,11 +353,14 @@
 
 
 /*!
- \brief Calculate centroid using a specified strategy
- \ingroup centroid
- \param geometry the geometry to calculate centroid from
- \param c reference to point which will contain the centroid
- \param strategy Calculation strategy for centroid
+\brief Calculate centroid using a specified strategy
+\ingroup centroid
+\tparam Geometry \geometry_concept
+\tparam Point \point_concept
+\tparam Strategy A type fulfilling a CentroidStrategy concept
+\param geometry \geometry_model
+\param c the calculated centroid will be assigned to this point reference
+\param strategy A strategy to calculate the centroid
  */
 template<typename Geometry, typename Point, typename Strategy>
 inline void centroid(Geometry const& geometry, Point& c,
@@ -382,10 +385,18 @@
 
 
 /*!
- \brief Calculate centroid
- \ingroup centroid
- \param geometry a geometry (e.g. closed ring or polygon)
- \param c reference to point which will contain the centroid
+\brief Calculate centroid
+\ingroup centroid
+\tparam Geometry \geometry_concept
+\tparam Point \point_concept
+\param geometry \geometry_model
+\param c the calculated centroid will be assigned to this point reference
+
+\qbk{behavior,__0dim__:Calculates centroid}
+\qbk{behavior,__1dim__:Calculates centroid}
+\qbk{behavior,__2dim__:Calculates centroid}
+\qbk{behavior,__empty__:Throws a centroid_exception}
+\qbk{complexity,Linear}
  */
 template<typename Geometry, typename Point>
 inline void centroid(Geometry const& geometry, Point& c)
@@ -406,10 +417,12 @@
 
 
 /*!
- \brief Calculate and return centroid
- \ingroup centroid
- \param geometry the geometry to calculate centroid from
- \return the centroid
+\brief Calculate and return centroid
+\ingroup centroid
+\tparam Point \point_concept
+\tparam Geometry \geometry_concept
+\param geometry \geometry_model
+\return The calculated centroid
  */
 template<typename Point, typename Geometry>
 inline Point make_centroid(Geometry const& geometry)
@@ -422,11 +435,13 @@
 }
 
 /*!
- \brief Calculate and return centroid, using a specified strategy
- \ingroup centroid
- \param geometry the geometry to calculate centroid from
- \param strategy Calculation strategy for centroid
- \return the centroid
+\brief Calculate and return centroid, using a specified strategy
+\ingroup centroid
+\tparam Point \point_concept
+\tparam Geometry \geometry_concept
+\param geometry \geometry_model
+\param strategy Calculation strategy for centroid
+\return The calculated centroid
  */
 template<typename Point, typename Geometry, typename Strategy>
 inline Point make_centroid(Geometry const& geometry, Strategy const& strategy)

Modified: sandbox/geometry/boost/geometry/algorithms/length.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/algorithms/length.hpp (original)
+++ sandbox/geometry/boost/geometry/algorithms/length.hpp 2010-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -129,18 +129,27 @@
 
 
 /*!
- \brief Calculate length of a geometry
- \ingroup length
- \details The function length returns the length of a geometry, using the
- default distance-calculation-strategy
- \param geometry the geometry, being a geometry::linestring, vector,
- iterator pair, or any other boost compatible range
- \return the length
- Example showing length calculation on a vector
- \dontinclude doxygen_1.cpp
- \skip example_length_linestring_iterators2
- \line {
- \until }
+\brief Calculate length of a geometry
+\ingroup length
+\details 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
+\tparam Geometry \geometry_concept
+\param geometry \geometry_model
+\return The calculated length
+
+\par Example:
+Example showing length calculation on a vector
+\dontinclude doxygen_1.cpp
+\skip example_length_linestring_iterators2
+\line {
+\until }
+
+\qbk{behavior,__0dim__:Returns zero}
+\qbk{behavior,__1dim__:Returns the length}
+\qbk{behavior,__2dim__:Returns zero}
+\qbk{complexity,Linear}
  */
 template<typename Geometry>
 inline typename length_result<Geometry>::type length(
@@ -163,21 +172,24 @@
 
 
 /*!
- \brief Calculate length of a geometry
- \ingroup length
- \details The function length returns the length of a geometry,
- using specified strategy
- \param geometry the geometry, being a geometry::linestring, vector,
- iterator pair, or any other boost compatible range
- \param strategy strategy to be used for distance calculations.
- \return the length
- \par Example:
- Example showing length calculation using iterators
- and the Vincenty strategy
- \dontinclude doxygen_1.cpp
- \skip example_length_linestring_iterators3
- \line {
- \until }
+\brief Calculate length of a geometry
+\ingroup length
+\details The version with a specified strategy uses that strategy
+ to calculate distances between consecutive points, summing them
+ to the length of the geometry. \strategy_reasons
+\tparam Geometry \geometry_concept
+\tparam Strategy A type fulfilling a DistanceStrategy concept
+\param geometry \geometry_model
+\param strategy A strategy to be used for distance calculations.
+\return The calculated length
+
+\par Example:
+Example showing length calculation using iterators
+ and the Vincenty strategy
+\dontinclude doxygen_1.cpp
+\skip example_length_linestring_iterators3
+\line {
+\until }
  */
 template<typename Geometry, typename Strategy>
 inline typename length_result<Geometry>::type length(

Modified: sandbox/geometry/boost/geometry/algorithms/perimeter.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/algorithms/perimeter.hpp (original)
+++ sandbox/geometry/boost/geometry/algorithms/perimeter.hpp 2010-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -66,13 +66,18 @@
 
 
 /*!
- \brief Calculate perimeter of a geometry
- \ingroup perimeter
- \details The function perimeter returns the perimeter of a geometry,
- using the default distance-calculation-strategy
- \param geometry the geometry, be it a geometry::ring, vector, iterator pair,
- or any other boost compatible range
- \return the perimeter
+\brief Calculate perimeter of a geometry
+\ingroup perimeter
+\details The function perimeter returns the perimeter of a geometry,
+ using the default distance-calculation-strategy
+\tparam Geometry \geometry_concept
+\param geometry \geometry_model
+\return The calculated perimeter
+
+\qbk{behavior,__0dim__:Returns zero}
+\qbk{behavior,__1dim__:Returns zero}
+\qbk{behavior,__2dim__:Returns the perimeter}
+\qbk{complexity,Linear}
  */
 template<typename Geometry>
 inline typename length_result<Geometry>::type perimeter(
@@ -95,14 +100,15 @@
 }
 
 /*!
- \brief Calculate perimeter of a geometry
- \ingroup perimeter
- \details The function perimeter returns the perimeter of a geometry,
- using specified strategy
- \param geometry the geometry, be it a geometry::ring, vector, iterator pair,
- or any other boost compatible range
- \param strategy strategy to be used for distance calculations.
- \return the perimeter
+\brief Calculate perimeter of a geometry
+\ingroup perimeter
+\details The function perimeter returns the perimeter of a geometry,
+ using specified strategy
+\tparam Geometry \geometry_concept
+\tparam Strategy A type fulfilling a DistanceStrategy concept
+\param geometry \geometry_model
+\param strategy strategy to be used for distance calculations.
+\return The calculated perimeter
  */
 template<typename Geometry, typename Strategy>
 inline typename length_result<Geometry>::type perimeter(

Modified: sandbox/geometry/boost/geometry/geometries/concepts/polygon_concept.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/geometries/concepts/polygon_concept.hpp (original)
+++ sandbox/geometry/boost/geometry/geometries/concepts/polygon_concept.hpp 2010-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -44,8 +44,7 @@
   a const version and a mutable version
 
 \note to fulfil the concepts, no traits class has to be specialized to
-define the point type. The point type is automatically defined as
-typename range_value<typename ring_type<P>::type>::type
+define the point type. The point type is extracted from the ring type
 */
 template <typename Geometry>
 class Polygon

Modified: sandbox/geometry/libs/geometry/doc/Doxyfile
==============================================================================
--- sandbox/geometry/libs/geometry/doc/Doxyfile (original)
+++ sandbox/geometry/libs/geometry/doc/Doxyfile 2010-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -15,8 +15,8 @@
 ALWAYS_DETAILED_SEC = YES
 INLINE_INHERITED_MEMB = NO
 FULL_PATH_NAMES = YES
-STRIP_FROM_PATH = c:/svn/boost-geometry \
- c:/svn/boost-geometry/libs/geometry/doc/doxygen_input/pages
+STRIP_FROM_PATH = c:/_svn/boost/sandbox/geometry \
+ c:/_svn/boost/sandbox/geometry/libs/geometry/doc/doxygen_input/pages
 STRIP_FROM_INC_PATH =
 SHORT_NAMES = NO
 JAVADOC_AUTOBRIEF = NO
@@ -26,8 +26,12 @@
 SEPARATE_MEMBER_PAGES = NO
 TAB_SIZE = 8
 ALIASES = qbk{2}="\xmlonly <qbk.\1>\2</qbk.\1> \endxmlonly" \
- geometry_concept="Any geometry fulfilling the any Geometry concept" \
- template_numerical="Numerical type (int, double, ttmath, ...)"
+ qbk{3}="\xmlonly <qbk.\1>\2, \3</qbk.\1> \endxmlonly" \
+ geometry_concept="Any type fulfilling a Geometry concept" \
+ point_concept="Any type fulfilling a Point concept" \
+ geometry_model="A model of the specified concept" \
+ template_numerical="Numerical type (int, double, ttmath, ...)" \
+ strategy_reasons="Reasons to specify a strategy include: use another coordinate system for calculations; construct the strategy beforehand (e.g. with the radius of the Earth); select a strategy when there are more than one available for a calculation (e.g. distance over the Earth)"
 OPTIMIZE_OUTPUT_FOR_C = NO
 OPTIMIZE_OUTPUT_JAVA = NO
 OPTIMIZE_FOR_FORTRAN = NO
@@ -111,7 +115,6 @@
                         ../../../boost/geometry/strategies/spherical \
                         ../../../boost/geometry/strategies/transform \
                         ../../../boost/geometry/util \
- ../../../boost/geometry/views \
                         ../../../boost/geometry/extensions/io/svg \
                         ./doxygen_input/pages \
                         ./doxygen_input/groups

Modified: sandbox/geometry/libs/geometry/doc/qbk/Jamfile.v2
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/Jamfile.v2 (original)
+++ sandbox/geometry/libs/geometry/doc/qbk/Jamfile.v2 2010-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -17,13 +17,14 @@
 boostbook geometry
         : geometry.qbk
         : <dependency>Jamfile.v2
+ <dependency>quickref.xml
         : <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=../boostroot_stub
- <xsl:param>callout.graphics.path=../boostroot_stub/doc/html/images/callouts/
+ <xsl:param>boost.root=../../../..
+ <xsl:param>callout.graphics.path=../../../../doc/html/images/callouts/
         ;
 
 

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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -22,6 +22,12 @@
     [id geometry]
 ]
 
+
+[def __0dim__ 0-dimensional (e.g. point)]
+[def __1dim__ 1-dimensional (e.g. linestring)]
+[def __2dim__ 2-dimensional (e.g. polygon)]
+[def __empty__ Empty (e.g. polygon without points)]
+
 In progress
 
 Link to [link geometry.reference.models.point_xy point XY]

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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -47,6 +47,7 @@
 %xml2qbk% %out%\group__unique.xml > reference\unique.qbk
 %xml2qbk% %out%\group__within.xml > reference\within.qbk
 
+%xml2qbk% %out%\group__register.xml > reference\register.qbk
 
 
 %xml2qbk% %out%\classboost_1_1geometry_1_1point.xml > reference\point.qbk
@@ -61,4 +62,4 @@
 :: %xslt% reference.xsl doxygen_output\xml\group__area.xml > area.qbk
 :: %xslt% reference.xsl doxygen_output\xml\area_8hpp.xml > area2.qbk
 
-bjam --toolset=msvc
+bjam --toolset=msvc --without-python

Modified: sandbox/geometry/libs/geometry/doc/qbk/quickref.xml
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/quickref.xml (original)
+++ sandbox/geometry/libs/geometry/doc/qbk/quickref.xml 2010-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
- "boostroot_stub/dtd/boostbook.dtd">
+ "../../../../tools/boostbook/dtd/boostbook.dtd">
 
 
 <!--
@@ -185,7 +185,6 @@
     <bridgehead renderas="sect3">Centroid</bridgehead>
     <simplelist type="vert" columns="1">
      <member><link linkend="geometry.reference.algorithms.centroid">centroid</link></member>
- <member><link linkend="geometry.reference.algorithms.make_centroid">make_centroid</link></member>
     </simplelist>
     <bridgehead renderas="sect3">Clear</bridgehead>
     <simplelist type="vert" columns="1">
@@ -202,7 +201,6 @@
     <bridgehead renderas="sect3">Convex Hull</bridgehead>
     <simplelist type="vert" columns="1">
      <member><link linkend="geometry.reference.algorithms.convex_hull">convex_hull</link></member>
- <member><link linkend="geometry.reference.algorithms.convex_hull_inserter">convex_hull_inserter</link></member>
     </simplelist>
     <bridgehead renderas="sect3">Correct</bridgehead>
     <simplelist type="vert" columns="1">
@@ -228,11 +226,10 @@
     <bridgehead renderas="sect3">Envelope</bridgehead>
     <simplelist type="vert" columns="1">
      <member><link linkend="geometry.reference.algorithms.envelope">envelope</link></member>
- <member><link linkend="geometry.reference.algorithms.make_envelope">make_envelope</link></member>
     </simplelist>
     <bridgehead renderas="sect3">Intersection</bridgehead>
     <simplelist type="vert" columns="1">
- <member><link linkend="geometry.reference.algorithms.intersection_inserter">intersection_inserter</link></member>
+ <member><link linkend="geometry.reference.algorithms.intersection">intersection</link></member>
     </simplelist>
    </entry>
    <entry valign="top">
@@ -253,7 +250,6 @@
     <bridgehead renderas="sect3">Simplify</bridgehead>
     <simplelist type="vert" columns="1">
      <member><link linkend="geometry.reference.algorithms.simplify">simplify</link></member>
- <member><link linkend="geometry.reference.algorithms.simplify_inserter">simplify_inserter</link></member>
     </simplelist>
     <bridgehead renderas="sect3">Transform</bridgehead>
     <simplelist type="vert" columns="1">
@@ -261,7 +257,7 @@
     </simplelist>
     <bridgehead renderas="sect3">Union</bridgehead>
     <simplelist type="vert" columns="1">
- <member><link linkend="geometry.reference.algorithms.union_inserter">union_inserter</link></member>
+ <member><link linkend="geometry.reference.algorithms.union">union</link></member>
     </simplelist>
     <bridgehead renderas="sect3">Unique</bridgehead>
     <simplelist type="vert" columns="1">

Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/access.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/access.qbk (original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/access.qbk 2010-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -19,9 +19,6 @@
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -34,26 +31,24 @@
 
 [endsect]
 
-[section:assign_2 assign (2)]
+[section:assign_3 assign (3)]
 
-assign a range of points to a linestring, ring or polygon
+assign two values to a 2D point
 
 [heading Synopsis]
-``template<typename Geometry, typename Range>
-void assign (Geometry &geometry, Range const &range)``
+``template<typename Geometry, typename Type>
+void assign (Geometry &geometry, Type const &c1, Type const &c2)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
 [[Geometry &] [] [geometry] []]
-[[Range const &] [] [range] []]
+[[Type const &] [] [c1] []]
+[[Type const &] [] [c2] []]
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -66,13 +61,13 @@
 
 [endsect]
 
-[section:assign_5 assign (5)]
+[section:assign_4 assign (4)]
 
-assign center + radius to a sphere [for extension]
+assign three values to a 3D point [or the center + radius to a circle]
 
 [heading Synopsis]
 ``template<typename Geometry, typename Type>
-void assign (Geometry &geometry, Type const &c1, Type const &c2, Type const &c3, Type const &c4)``
+void assign (Geometry &geometry, Type const &c1, Type const &c2, Type const &c3)``
 
 [heading Parameters]
 
@@ -82,13 +77,9 @@
 [[Type const &] [] [c1] []]
 [[Type const &] [] [c2] []]
 [[Type const &] [] [c3] []]
-[[Type const &] [] [c4] []]
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -101,13 +92,13 @@
 
 [endsect]
 
-[section:assign_4 assign (4)]
+[section:assign_5 assign (5)]
 
-assign three values to a 3D point [or the center + radius to a circle]
+assign center + radius to a sphere [for extension]
 
 [heading Synopsis]
 ``template<typename Geometry, typename Type>
-void assign (Geometry &geometry, Type const &c1, Type const &c2, Type const &c3)``
+void assign (Geometry &geometry, Type const &c1, Type const &c2, Type const &c3, Type const &c4)``
 
 [heading Parameters]
 
@@ -117,12 +108,10 @@
 [[Type const &] [] [c1] []]
 [[Type const &] [] [c2] []]
 [[Type const &] [] [c3] []]
+[[Type const &] [] [c4] []]
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -135,27 +124,23 @@
 
 [endsect]
 
-[section:assign_3 assign (3)]
+[section:assign_2 assign (2)]
 
-assign two values to a 2D point
+assign a range of points to a linestring, ring or polygon
 
 [heading Synopsis]
-``template<typename Geometry, typename Type>
-void assign (Geometry &geometry, Type const &c1, Type const &c2)``
+``template<typename Geometry, typename Range>
+void assign (Geometry &geometry, Range const &range)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
 [[Geometry &] [] [geometry] []]
-[[Type const &] [] [c1] []]
-[[Type const &] [] [c2] []]
+[[Range const &] [] [range] []]
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -188,9 +173,6 @@
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -207,6 +189,9 @@
 
 assign to a box inverse infinite
 
+[heading Description]
+The assign_inverse function initialize a 2D or 3D box with large coordinates, the min corner is very large, the max corner is very small. This is a convenient starting point to collect the minimum bounding box of a geometry.
+
 [heading Synopsis]
 ``template<typename Geometry>
 void assign_inverse (Geometry &geometry)``
@@ -219,9 +204,6 @@
 ]
 
 
-[heading Description]
-The assign_inverse function initialize a 2D or 3D box with large coordinates, the min corner is very large, the max corner is very small. This is a convenient starting point to collect the minimum bounding box of a geometry.
-
 [heading Header]
 Either
 
@@ -251,9 +233,6 @@
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -283,9 +262,6 @@
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -302,6 +278,9 @@
 
 assign zero values to a box, point
 
+[heading Description]
+The assign_zero function initializes a 2D or 3D point or box with coordinates of zero
+
 [heading Synopsis]
 ``template<typename Geometry>
 void assign_zero (Geometry &geometry)``
@@ -314,9 +293,6 @@
 ]
 
 
-[heading Description]
-The assign_zero function initializes a 2D or 3D point or box with coordinates of zero
-
 [heading Header]
 Either
 
@@ -345,9 +321,6 @@
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -362,25 +335,22 @@
 
 [section:exterior_ring_1 exterior_ring (1)]
 
-Function to get the exterior ring of a polygon (const version).
+Function to get the exterior_ring ring of a polygon.
 
 [heading Synopsis]
-``template<typename Polygon>
-const ring_type<Polygon>::type& exterior_ring (Polygon const &polygon)``
+``template<typename Polygon, >
+ring_type<Polygon>::type& exterior_ring (Polygon &polygon)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Polygon const &] [polygon type ] [polygon] [the polygon to get the exterior ring from ]]
+[[Polygon &] [] [polygon] [the polygon to get the exterior ring from ]]
 ]
 
 
 [heading Returns]
-a const reference to the exterior ring
-
-[heading Description]
-
+a reference to the exterior ring
 
 [heading Header]
 Either
@@ -396,25 +366,22 @@
 
 [section:exterior_ring_1 exterior_ring (1)]
 
-Function to get the exterior_ring ring of a polygon.
+Function to get the exterior ring of a polygon (const version).
 
 [heading Synopsis]
-``template<typename Polygon, >
-ring_type<Polygon>::type& exterior_ring (Polygon &polygon)``
+``template<typename Polygon>
+const ring_type<Polygon>::type& exterior_ring (Polygon const &polygon)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Polygon &] [] [polygon] [the polygon to get the exterior ring from ]]
+[[Polygon const &] [polygon type ] [polygon] [the polygon to get the exterior ring from ]]
 ]
 
 
 [heading Returns]
-a reference to the exterior ring
-
-[heading Description]
-
+a const reference to the exterior ring
 
 [heading Header]
 Either
@@ -447,9 +414,6 @@
 [heading Returns]
 coordinate value
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -466,6 +430,9 @@
 
 get coordinate value of a point, result is in Radian
 
+[heading Description]
+Result is in Radian, even if source coordinate system is in Degrees
+
 [heading Synopsis]
 ``template<std::size_t Dimension, typename Geometry>
 fp_coordinate_type<Geometry>::type get_as_radian (Geometry const &geometry)``
@@ -481,9 +448,6 @@
 [heading Returns]
 coordinate value
 
-[heading Description]
-Result is in Radian, even if source coordinate system is in Degrees
-
 [heading Header]
 Either
 
@@ -498,25 +462,22 @@
 
 [section:interior_rings_1 interior_rings (1)]
 
-Function to get the interior rings of a polygon (const version).
+Function to get the interior rings of a polygon (non const version).
 
 [heading Synopsis]
 ``template<typename Polygon, >
-const interior_type<Polygon>::type& interior_rings (Polygon const &polygon)``
+interior_type<Polygon>::type& interior_rings (Polygon &polygon)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Polygon const &] [] [polygon] [the polygon to get the interior rings from ]]
+[[Polygon &] [] [polygon] [the polygon to get the interior rings from ]]
 ]
 
 
 [heading Returns]
-a const reference to the interior rings
-
-[heading Description]
-
+a reference to the interior rings
 
 [heading Header]
 Either
@@ -532,25 +493,22 @@
 
 [section:interior_rings_1 interior_rings (1)]
 
-Function to get the interior rings of a polygon (non const version).
+Function to get the interior rings of a polygon (const version).
 
 [heading Synopsis]
 ``template<typename Polygon, >
-interior_type<Polygon>::type& interior_rings (Polygon &polygon)``
+const interior_type<Polygon>::type& interior_rings (Polygon const &polygon)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Polygon &] [] [polygon] [the polygon to get the interior rings from ]]
+[[Polygon const &] [] [polygon] [the polygon to get the interior rings from ]]
 ]
 
 
 [heading Returns]
-a reference to the interior rings
-
-[heading Description]
-
+a const reference to the interior rings
 
 [heading Header]
 Either
@@ -564,29 +522,28 @@
 
 [endsect]
 
-[section:make_3 make (3)]
+[section:make_2 make (2)]
 
 Make a geometry.
 
+[heading Description]
+the Generic Geometry Library uses concepts for all its geometries. Therefore it does not rely on constructors. The "make" functions are object generators creating geometries. There are overloads with two, three, four or six values, which are implemented depending on the geometry specified.
+
 [heading Synopsis]
-``template<typename Geometry, typename T>
-Geometry make (T const &c1, T const &c2, T const &c3)``
+``template<typename Geometry, typename T, >
+Geometry make (T const &c1, T const &c2)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[T const &] [] [c1] []]
-[[T const &] [] [c2] []]
-[[T const &] [] [c3] []]
+[[T const &] [the coordinate type ] [c1] []]
+[[T const &] [the coordinate type ] [c2] []]
 ]
 
 
 [heading Returns]
-a 3D point
-
-[heading Description]
-
+the geometry
 
 [heading Header]
 Either
@@ -600,28 +557,26 @@
 
 [endsect]
 
-[section:make_2 make (2)]
+[section:make_3 make (3)]
 
 Make a geometry.
 
 [heading Synopsis]
-``template<typename Geometry, typename T, >
-Geometry make (T const &c1, T const &c2)``
+``template<typename Geometry, typename T>
+Geometry make (T const &c1, T const &c2, T const &c3)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[T const &] [the coordinate type ] [c1] []]
-[[T const &] [the coordinate type ] [c2] []]
+[[T const &] [] [c1] []]
+[[T const &] [] [c2] []]
+[[T const &] [] [c3] []]
 ]
 
 
 [heading Returns]
-the geometry
-
-[heading Description]
-the Generic Geometry Library uses concepts for all its geometries. Therefore it does not rely on constructors. The "make" functions are object generators creating geometries. There are overloads with two, three, four or six values, which are implemented depending on the geometry specified.
+a 3D point
 
 [heading Header]
 Either
@@ -639,6 +594,9 @@
 
 Create a box with inverse infinite coordinates.
 
+[heading Description]
+The make_inverse function initialize a 2D or 3D box with large coordinates, the min corner is very large, the max corner is very small
+
 [heading Synopsis]
 ``template<typename Geometry>
 Geometry make_inverse ()``
@@ -653,9 +611,6 @@
 [heading Returns]
 the box
 
-[heading Description]
-The make_inverse function initialize a 2D or 3D box with large coordinates, the min corner is very large, the max corner is very small
-
 [heading Header]
 Either
 
@@ -672,6 +627,9 @@
 
 Create a geometry with "zero" coordinates.
 
+[heading Description]
+The make_zero function initializes a 2D or 3D point or box with coordinates of zero
+
 [heading Synopsis]
 ``template<typename Geometry>
 Geometry make_zero ()``
@@ -686,9 +644,6 @@
 [heading Returns]
 the geometry
 
-[heading Description]
-The make_zero function initializes a 2D or 3D point or box with coordinates of zero
-
 [heading Header]
 Either
 
@@ -720,9 +675,6 @@
 [heading Returns]
 the number of interior rings of the geometry
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -754,9 +706,6 @@
 [heading Returns]
 the number of interior rings of the geometry
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -788,9 +737,6 @@
 [heading Returns]
 number of points
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -820,9 +766,6 @@
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -852,9 +795,6 @@
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 

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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -1,27 +1,26 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__area.xml]
-[section:area_2 area (2)]
+[section:area_1 area (1)]
 
-Calculate area of a geometry using a specified strategy.
+Calculate 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)
 
 [heading Synopsis]
-``template<typename Geometry, typename Strategy>
-Strategy::return_type area (Geometry const &geometry, Strategy const &strategy)``
+``template<typename Geometry>
+area_result<Geometry>::type area (Geometry const &geometry)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [Any geometry fulfilling the any 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 ]]
 ]
 
 
 [heading Returns]
-The calculated area
-
-[heading Description]
-This version of area calculation takes a strategy
+The calculated area
 
 [heading Header]
 Either
@@ -32,31 +31,48 @@
 
 `#include <boost/geometry/algorithms/area.hpp>`
 
+[heading Behavior]
+[table
+[[Case] [Behavior] ]
+[[__0dim__][Returns zero]]
+[[__1dim__][Returns zero]]
+[[__2dim__][Returns the area]]
+]
+
+
+[heading Complexity]
+Linear
+
+[heading Snippets]
+[area_polygon]
+[area_polygon_spherical]
+
 
 [endsect]
 
-[section:area_1 area (1)]
+[section:area_2 area (2)]
 
-Calculate area of a geometry.
+Calculate area of a geometry using a specified strategy.
+
+[heading Description]
+This version of area calculation takes a strategy
 
 [heading Synopsis]
-``template<typename Geometry>
-area_result<Geometry>::type area (Geometry const &geometry)``
+``template<typename Geometry, typename Strategy>
+Strategy::return_type area (Geometry const &geometry, Strategy const &strategy)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [Any geometry fulfilling the any Geometry concept ] [geometry] [A model of Geometry ]]
+[[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. ]]
 ]
 
 
 [heading Returns]
 The calculated area
 
-[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)
-
 [heading Header]
 Either
 
@@ -66,9 +82,17 @@
 
 `#include <boost/geometry/algorithms/area.hpp>`
 
-[heading Snippets]
-[area_polygon]
-[area_polygon_spherical]
+[heading Behavior]
+[table
+[[Case] [Behavior] ]
+[[__0dim__][Returns zero]]
+[[__1dim__][Returns zero]]
+[[__2dim__][Returns the area]]
+]
+
+
+[heading Complexity]
+Linear
 
 
 [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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -1,25 +1,23 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__centroid.xml]
-[section:centroid_2 centroid (2)]
+[section:centroid_3 centroid (3)]
 
-Calculate centroid.
+Calculate centroid using a specified strategy.
 
 [heading Synopsis]
-``template<typename Geometry, typename Point>
-void centroid (Geometry const &geometry, Point &c)``
+``template<typename Geometry, typename Point, typename Strategy>
+void centroid (Geometry const &geometry, Point &c, Strategy const &strategy)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [] [geometry] [a geometry (e.g. closed ring or polygon) ]]
-[[Point &] [] [c] [reference to point which will contain 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] [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 ]]
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -29,30 +27,39 @@
 
 `#include <boost/geometry/algorithms/centroid.hpp>`
 
+[heading Behavior]
+[table
+[[Case] [Behavior] ]
+[[__0dim__][Calculates centroid]]
+[[__1dim__][Calculates centroid]]
+[[__2dim__][Calculates centroid]]
+[[__empty__][Throws a centroid_exception]]
+]
+
+
+[heading Complexity]
+Linear
+
 
 [endsect]
 
-[section:centroid_3 centroid (3)]
+[section:centroid_2 centroid (2)]
 
-Calculate centroid using a specified strategy.
+Calculate centroid.
 
 [heading Synopsis]
-``template<typename Geometry, typename Point, typename Strategy>
-void centroid (Geometry const &geometry, Point &c, Strategy const &strategy)``
+``template<typename Geometry, typename Point>
+void centroid (Geometry const &geometry, Point &c)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [] [geometry] [the geometry to calculate centroid from ]]
-[[Point &] [] [c] [reference to point which will contain the centroid ]]
-[[Strategy const &] [] [strategy] [Calculation strategy for centroid ]]
+[[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]]
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -62,31 +69,40 @@
 
 `#include <boost/geometry/algorithms/centroid.hpp>`
 
+[heading Behavior]
+[table
+[[Case] [Behavior] ]
+[[__0dim__][Calculates centroid]]
+[[__1dim__][Calculates centroid]]
+[[__2dim__][Calculates centroid]]
+[[__empty__][Throws a centroid_exception]]
+]
+
+
+[heading Complexity]
+Linear
+
 
 [endsect]
 
-[section:make_centroid_2 make_centroid (2)]
+[section:make_centroid_1 make_centroid (1)]
 
-Calculate and return centroid, using a specified strategy.
+Calculate and return centroid.
 
 [heading Synopsis]
-``template<typename Point, typename Geometry, typename Strategy>
-Point make_centroid (Geometry const &geometry, Strategy const &strategy)``
+``template<typename Point, typename Geometry>
+Point make_centroid (Geometry const &geometry)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [] [geometry] [the geometry to calculate centroid from ]]
-[[Strategy const &] [] [strategy] [Calculation strategy for centroid ]]
+[[Geometry const &] [Any type fulfilling a Geometry concept ] [geometry] [A model of the specified concept ]]
 ]
 
 
 [heading Returns]
-the centroid
-
-[heading Description]
-
+The calculated centroid
 
 [heading Header]
 Either
@@ -97,30 +113,41 @@
 
 `#include <boost/geometry/algorithms/centroid.hpp>`
 
+[heading Behavior]
+[table
+[[Case] [Behavior] ]
+[[__0dim__][Calculates centroid]]
+[[__1dim__][Calculates centroid]]
+[[__2dim__][Calculates centroid]]
+[[__empty__][Throws a centroid_exception]]
+]
+
+
+[heading Complexity]
+Linear
+
 
 [endsect]
 
-[section:make_centroid_1 make_centroid (1)]
+[section:make_centroid_2 make_centroid (2)]
 
-Calculate and return centroid.
+Calculate and return centroid, using a specified strategy.
 
 [heading Synopsis]
-``template<typename Point, typename Geometry>
-Point make_centroid (Geometry const &geometry)``
+``template<typename Point, typename Geometry, typename Strategy>
+Point make_centroid (Geometry const &geometry, Strategy const &strategy)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [] [geometry] [the geometry to calculate centroid from ]]
+[[Geometry const &] [Any type fulfilling a Geometry concept ] [geometry] [A model of the specified concept ]]
+[[Strategy const &] [] [strategy] [Calculation strategy for centroid ]]
 ]
 
 
 [heading Returns]
-the centroid
-
-[heading Description]
-
+The calculated centroid
 
 [heading Header]
 Either
@@ -131,6 +158,19 @@
 
 `#include <boost/geometry/algorithms/centroid.hpp>`
 
+[heading Behavior]
+[table
+[[Case] [Behavior] ]
+[[__0dim__][Calculates centroid]]
+[[__1dim__][Calculates centroid]]
+[[__2dim__][Calculates centroid]]
+[[__empty__][Throws a centroid_exception]]
+]
+
+
+[heading Complexity]
+Linear
+
 
 [endsect]
 

Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/closing_iterator.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/closing_iterator.qbk (original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/closing_iterator.qbk 2010-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -2,9 +2,6 @@
 [/ Generated from ..\doxygen_output\xml\structboost_1_1geometry_1_1closing__iterator.xml]
 [section:closing_iterator closing_iterator]
 
-[heading Description]
-
-
 [heading Synopsis]
 ``template<typename Range>
 class closing_iterator

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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -17,9 +17,6 @@
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 

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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -17,9 +17,6 @@
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 

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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -17,9 +17,6 @@
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -49,9 +46,6 @@
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 

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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -18,9 +18,6 @@
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 

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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -20,9 +20,6 @@
 [heading Returns]
 true if disjoint, else false
 
-[heading Description]
-
-
 [heading Header]
 Either
 

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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -4,6 +4,9 @@
 
 Calculate comparable distance measurement between 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, , >
 distance_result<Geometry1, Geometry2>::type comparable_distance (Geometry1 const &geometry1, Geometry2 const &geometry2)``
@@ -20,9 +23,6 @@
 [heading Returns]
 the comparable distance
 
-[heading Description]
-The default strategy is used, belonging to the corresponding coordinate system of the geometries and the comparable strategy is used
-
 [heading Header]
 Either
 
@@ -39,6 +39,9 @@
 
 Calculate distance between two geometries.
 
+[heading Description]
+The default strategy is used, belonging to the corresponding coordinate system of the geometries
+
 [heading Synopsis]
 ``template<typename Geometry1, typename Geometry2>
 distance_result<Geometry1, Geometry2>::type distance (Geometry1 const &geometry1, Geometry2 const &geometry2)``
@@ -55,9 +58,6 @@
 [heading Returns]
 the distance (either a double or a distance result, convertable to double)
 
-[heading Description]
-The default strategy is used, belonging to the corresponding coordinate system of the geometries
-
 [heading Header]
 Either
 
@@ -91,9 +91,6 @@
 [heading Returns]
 the distance
 
-[heading Description]
-
-
 [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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -17,9 +17,6 @@
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -48,9 +45,6 @@
 ]
 
 
-[heading Description]
-
-
 [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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -20,9 +20,6 @@
 [heading Returns]
 true if geometries are spatially equal, else false
 
-[heading Description]
-
-
 [heading Header]
 Either
 

Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/for_each.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/for_each.qbk (original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/for_each.qbk 2010-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -4,22 +4,22 @@
 
 Calls functor for geometry.
 
+[heading Description]
+Calls the functor the specified
+
 [heading Synopsis]
 ``template<typename Geometry, typename Functor>
-Functor for_each_point (Geometry &geometry, Functor f)``
+Functor for_each_point (Geometry const &geometry, Functor f)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry &] [] [geometry] [geometry to loop through ]]
+[[Geometry const &] [] [geometry] [geometry to loop through ]]
 [[Functor] [] [f] [functor to use]]
 ]
 
 
-[heading Description]
-Calls the functor for the specified geometry
-
 [heading Header]
 Either
 
@@ -36,22 +36,22 @@
 
 Calls functor for geometry.
 
+[heading Description]
+Calls the functor for the specified geometry
+
 [heading Synopsis]
 ``template<typename Geometry, typename Functor>
-Functor for_each_point (Geometry const &geometry, Functor f)``
+Functor for_each_point (Geometry &geometry, Functor f)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [] [geometry] [geometry to loop through ]]
+[[Geometry &] [] [geometry] [geometry to loop through ]]
 [[Functor] [] [f] [functor to use]]
 ]
 
 
-[heading Description]
-Calls the functor the specified
-
 [heading Header]
 Either
 
@@ -68,22 +68,22 @@
 
 Calls functor for segments on linestrings, rings, polygons, ...
 
+[heading Description]
+Calls the functor all
+
 [heading Synopsis]
 ``template<typename Geometry, typename Functor>
-Functor for_each_segment (Geometry &geometry, Functor f)``
+Functor for_each_segment (Geometry const &geometry, Functor f)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry &] [] [geometry] [geometry to loop through ]]
+[[Geometry const &] [] [geometry] [geometry to loop through ]]
 [[Functor] [] [f] [functor to use]]
 ]
 
 
-[heading Description]
-Calls the functor all segments of the specified geometry
-
 [heading Header]
 Either
 
@@ -100,22 +100,22 @@
 
 Calls functor for segments on linestrings, rings, polygons, ...
 
+[heading Description]
+Calls the functor all segments of the specified geometry
+
 [heading Synopsis]
 ``template<typename Geometry, typename Functor>
-Functor for_each_segment (Geometry const &geometry, Functor f)``
+Functor for_each_segment (Geometry &geometry, Functor f)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [] [geometry] [geometry to loop through ]]
+[[Geometry &] [] [geometry] [geometry to loop through ]]
 [[Functor] [] [f] [functor to use]]
 ]
 
 
-[heading Description]
-Calls the functor all
-
 [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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -4,6 +4,9 @@
 
 Intersects 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.
+
 [heading Synopsis]
 ``template<typename Geometry1, typename Geometry2, typename Collection>
 void intersection (Geometry1 const &geometry1, Geometry2 const &geometry2, Collection &output_collection)``
@@ -21,9 +24,6 @@
 [heading Returns]
 true if successful
 
-[heading Description]
-The two input geometries are intersected and the resulting linestring(s), ring(s) or polygon(s) are added to the specified collection.
-
 [heading Header]
 Either
 
@@ -36,13 +36,16 @@
 
 [endsect]
 
-[section:intersection_inserter_3 intersection_inserter (3)]
+[section:intersection_inserter_4 intersection_inserter (4)]
 
 Intersects 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.
+
 [heading Synopsis]
-``template<typename GeometryOut, typename Geometry1, typename Geometry2, typename OutputIterator>
-OutputIterator intersection_inserter (Geometry1 const &geometry1, Geometry2 const &geometry2, OutputIterator out)``
+``template<typename GeometryOut, typename Geometry1, typename Geometry2, typename OutputIterator, typename Strategy>
+OutputIterator intersection_inserter (Geometry1 const &geometry1, Geometry2 const &geometry2, OutputIterator out, Strategy const &strategy)``
 
 [heading Parameters]
 
@@ -51,15 +54,13 @@
 [[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 ]]
 ]
 
 
 [heading Returns]
 the output iterator
 
-[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.
-
 [heading Header]
 Either
 
@@ -72,13 +73,16 @@
 
 [endsect]
 
-[section:intersection_inserter_4 intersection_inserter (4)]
+[section:intersection_inserter_3 intersection_inserter (3)]
 
 Intersects 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.
+
 [heading Synopsis]
-``template<typename GeometryOut, typename Geometry1, typename Geometry2, typename OutputIterator, typename Strategy>
-OutputIterator intersection_inserter (Geometry1 const &geometry1, Geometry2 const &geometry2, OutputIterator out, Strategy const &strategy)``
+``template<typename GeometryOut, typename Geometry1, typename Geometry2, typename OutputIterator>
+OutputIterator intersection_inserter (Geometry1 const &geometry1, Geometry2 const &geometry2, OutputIterator out)``
 
 [heading Parameters]
 
@@ -87,16 +91,12 @@
 [[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 ]]
 ]
 
 
 [heading Returns]
 the output iterator
 
-[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.
-
 [heading Header]
 Either
 

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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -1,27 +1,23 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__intersects.xml]
-[section:intersects_2 intersects (2)]
+[section:intersects_1 intersects (1)]
 
-Determine if there is at least one intersection.
+Determine if there is at least one intersection (crossing or self-tangency).
 
 [heading Synopsis]
-``template<typename Geometry1, typename Geometry2>
-bool intersects (Geometry1 const &geometry1, Geometry2 const &geometry2)``
+``template<typename Geometry>
+bool intersects (Geometry const &geometry)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry1 const &] [first geometry type ] [geometry1] [first geometry ]]
-[[Geometry2 const &] [second geometry type ] [geometry2] [second geometry ]]
+[[Geometry const &] [geometry type ] [geometry] [geometry ]]
 ]
 
 
 [heading Returns]
-true if there are intersection(s), else false
-
-[heading Description]
-
+true if there are intersections, else false
 
 [heading Header]
 Either
@@ -35,27 +31,25 @@
 
 [endsect]
 
-[section:intersects_1 intersects (1)]
+[section:intersects_2 intersects (2)]
 
-Determine if there is at least one intersection (crossing or self-tangency).
+Determine if there is at least one intersection.
 
 [heading Synopsis]
-``template<typename Geometry>
-bool intersects (Geometry const &geometry)``
+``template<typename Geometry1, typename Geometry2>
+bool intersects (Geometry1 const &geometry1, Geometry2 const &geometry2)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [geometry type ] [geometry] [geometry ]]
+[[Geometry1 const &] [first geometry type ] [geometry1] [first geometry ]]
+[[Geometry2 const &] [second geometry type ] [geometry2] [second geometry ]]
 ]
 
 
 [heading Returns]
-true if there are intersections, else false
-
-[heading Description]
-
+true if there are intersection(s), else false
 
 [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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -1,27 +1,26 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__length.xml]
-[section:length_2 length (2)]
+[section:length_1 length (1)]
 
 Calculate 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
+
 [heading Synopsis]
-``template<typename Geometry, typename Strategy>
-length_result<Geometry>::type length (Geometry const &geometry, Strategy const &strategy)``
+``template<typename Geometry>
+length_result<Geometry>::type length (Geometry const &geometry)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [] [geometry] [the geometry, being a ]]
-[[Strategy const &] [] [strategy] [strategy to be used for distance calculations. ]]
+[[Geometry const &] [Any type fulfilling a Geometry concept ] [geometry] [A model of the specified concept ]]
 ]
 
 
 [heading Returns]
-the length
-
-[heading Description]
-The function length returns the length of a geometry, using specified strategy
+The calculated length
 
 [heading Header]
 Either
@@ -32,30 +31,43 @@
 
 `#include <boost/geometry/algorithms/length.hpp>`
 
+[heading Behavior]
+[table
+[[Case] [Behavior] ]
+[[__0dim__][Returns zero]]
+[[__1dim__][Returns the length]]
+[[__2dim__][Returns zero]]
+]
+
+
+[heading Complexity]
+Linear
+
 
 [endsect]
 
-[section:length_1 length (1)]
+[section:length_2 length (2)]
 
 Calculate length of a geometry.
 
+[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)
+
 [heading Synopsis]
-``template<typename Geometry>
-length_result<Geometry>::type length (Geometry const &geometry)``
+``template<typename Geometry, typename Strategy>
+length_result<Geometry>::type length (Geometry const &geometry, Strategy const &strategy)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [] [geometry] [the geometry, being a ]]
+[[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. ]]
 ]
 
 
 [heading Returns]
-the length Example showing length calculation on a vector
-
-[heading Description]
-The function length returns the length of a geometry, using the default distance-calculation-strategy
+The calculated length
 
 [heading Header]
 Either
@@ -66,6 +78,18 @@
 
 `#include <boost/geometry/algorithms/length.hpp>`
 
+[heading Behavior]
+[table
+[[Case] [Behavior] ]
+[[__0dim__][Returns zero]]
+[[__1dim__][Returns the length]]
+[[__2dim__][Returns zero]]
+]
+
+
+[heading Complexity]
+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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -20,9 +20,6 @@
 [heading Returns]
 true if there is overlap
 
-[heading Description]
-
-
 [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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -1,27 +1,26 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__perimeter.xml]
-[section:perimeter_2 perimeter (2)]
+[section:perimeter_1 perimeter (1)]
 
 Calculate perimeter of a geometry.
 
+[heading Description]
+The function perimeter returns the perimeter of a geometry, using the default distance-calculation-strategy
+
 [heading Synopsis]
-``template<typename Geometry, typename Strategy>
-length_result<Geometry>::type perimeter (Geometry const &geometry, Strategy const &strategy)``
+``template<typename Geometry>
+length_result<Geometry>::type perimeter (Geometry const &geometry)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [] [geometry] [the geometry, be it a geometry::ring, vector, iterator pair, or any other boost compatible range ]]
-[[Strategy const &] [] [strategy] [strategy to be used for distance calculations. ]]
+[[Geometry const &] [Any type fulfilling a Geometry concept ] [geometry] [A model of the specified concept ]]
 ]
 
 
 [heading Returns]
-the perimeter
-
-[heading Description]
-The function perimeter returns the perimeter of a geometry, using specified strategy
+The calculated perimeter
 
 [heading Header]
 Either
@@ -32,30 +31,43 @@
 
 `#include <boost/geometry/algorithms/perimeter.hpp>`
 
+[heading Behavior]
+[table
+[[Case] [Behavior] ]
+[[__0dim__][Returns zero]]
+[[__1dim__][Returns zero]]
+[[__2dim__][Returns the perimeter]]
+]
+
+
+[heading Complexity]
+Linear
+
 
 [endsect]
 
-[section:perimeter_1 perimeter (1)]
+[section:perimeter_2 perimeter (2)]
 
 Calculate perimeter of a geometry.
 
+[heading Description]
+The function perimeter returns the perimeter of a geometry, using specified strategy
+
 [heading Synopsis]
-``template<typename Geometry>
-length_result<Geometry>::type perimeter (Geometry const &geometry)``
+``template<typename Geometry, typename Strategy>
+length_result<Geometry>::type perimeter (Geometry const &geometry, Strategy const &strategy)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [] [geometry] [the geometry, be it a geometry::ring, vector, iterator pair, or any other boost compatible range ]]
+[[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. ]]
 ]
 
 
 [heading Returns]
-the perimeter
-
-[heading Description]
-The function perimeter returns the perimeter of a geometry, using the default distance-calculation-strategy
+The calculated perimeter
 
 [heading Header]
 Either
@@ -66,6 +78,18 @@
 
 `#include <boost/geometry/algorithms/perimeter.hpp>`
 
+[heading Behavior]
+[table
+[[Case] [Behavior] ]
+[[__0dim__][Returns zero]]
+[[__1dim__][Returns zero]]
+[[__2dim__][Returns the perimeter]]
+]
+
+
+[heading Complexity]
+Linear
+
 
 [endsect]
 

Modified: sandbox/geometry/libs/geometry/doc/qbk/reference/point_xy.qbk
==============================================================================
--- sandbox/geometry/libs/geometry/doc/qbk/reference/point_xy.qbk (original)
+++ sandbox/geometry/libs/geometry/doc/qbk/reference/point_xy.qbk 2010-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -2,9 +2,6 @@
 [/ Generated from ..\doxygen_output\xml\classboost_1_1geometry_1_1point__xy.xml]
 [section:point_xy point_xy]
 
-[heading Description]
-
-
 [heading Synopsis]
 ``template<typename T, typename C>
 class point_xy

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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -16,9 +16,6 @@
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 

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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -1,26 +1,24 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__simplify.xml]
-[section:simplify_3 simplify (3)]
+[section:simplify_4 simplify (4)]
 
-Simplify a geometry.
+Simplify a geometry using a specified strategy.
 
 [heading Synopsis]
-``template<typename Geometry, typename Distance>
-void simplify (Geometry const &geometry, Geometry &out, Distance const &max_distance)``
+``template<typename Geometry, typename Distance, typename Strategy>
+void simplify (Geometry const &geometry, Geometry &out, Distance const &max_distance, Strategy const &strategy)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [Any geometry fulfilling the any Geometry concept ] [geometry] [input geometry, to be simplified ]]
-[[Geometry &] [Any geometry fulfilling the any 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]]
+[[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 ]]
+[[Distance const &] [A numerical distance measure ] [max_distance] [distance (in units of input coordinates) of a vertex to other segments to be removed ]]
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -30,31 +28,32 @@
 
 `#include <boost/geometry/algorithms/simplify.hpp>`
 
+[heading Complexity]
+Linear
+
+[heading Image(s)]
+[$svg_simplify_country.png]
 
 [endsect]
 
-[section:simplify_4 simplify (4)]
+[section:simplify_3 simplify (3)]
 
-Simplify a geometry using a specified strategy.
+Simplify a geometry.
 
 [heading Synopsis]
-``template<typename Geometry, typename Distance, typename Strategy>
-void simplify (Geometry const &geometry, Geometry &out, Distance const &max_distance, Strategy const &strategy)``
+``template<typename Geometry, typename Distance>
+void simplify (Geometry const &geometry, Geometry &out, Distance const &max_distance)``
 
 [heading Parameters]
 
 [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 geometry fulfilling the any Geometry concept ] [geometry] [input geometry, to be simplified ]]
-[[Geometry &] [Any geometry fulfilling the any 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 ]]
+[[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]]
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -64,32 +63,31 @@
 
 `#include <boost/geometry/algorithms/simplify.hpp>`
 
-[heading Image(s)]
-[$svg_simplify_country.png]
+[heading Complexity]
+Linear
+
 
 [endsect]
 
-[section:simplify_inserter_3 simplify_inserter (3)]
+[section:simplify_inserter_4 simplify_inserter (4)]
 
-Simplify a geometry, using an output iterator.
+Simplify a geometry, using an output iterator and a specified strategy.
 
 [heading Synopsis]
-``template<typename Geometry, typename OutputIterator, typename Distance>
-void simplify_inserter (Geometry const &geometry, OutputIterator out, Distance const &max_distance)``
+``template<typename Geometry, typename OutputIterator, typename Distance, typename Strategy>
+void simplify_inserter (Geometry const &geometry, OutputIterator out, Distance const &max_distance, Strategy const &strategy)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [Any geometry fulfilling the any 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]]
+[[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 ]]
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -99,31 +97,33 @@
 
 `#include <boost/geometry/algorithms/simplify.hpp>`
 
+[heading Complexity]
+Linear
+
+[heading Snippets]
+[simplify_inserter]
+
 
 [endsect]
 
-[section:simplify_inserter_4 simplify_inserter (4)]
+[section:simplify_inserter_3 simplify_inserter (3)]
 
-Simplify a geometry, using an output iterator and a specified strategy.
+Simplify a geometry, using an output iterator.
 
 [heading Synopsis]
-``template<typename Geometry, typename OutputIterator, typename Distance, typename Strategy>
-void simplify_inserter (Geometry const &geometry, OutputIterator out, Distance const &max_distance, Strategy const &strategy)``
+``template<typename Geometry, typename OutputIterator, typename Distance>
+void simplify_inserter (Geometry const &geometry, OutputIterator out, Distance const &max_distance)``
 
 [heading Parameters]
 
 [table
 [[Type] [Concept] [Name] [Description] ]
-[[Geometry const &] [Any geometry fulfilling the any 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 ]]
+[[Distance const &] [] [max_distance] [distance (in units of input coordinates) of a vertex to other segments to be removed]]
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -133,8 +133,8 @@
 
 `#include <boost/geometry/algorithms/simplify.hpp>`
 
-[heading Snippets]
-[simplify_inserter]
+[heading Complexity]
+Linear
 
 
 [endsect]

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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -18,9 +18,6 @@
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 

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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -1,12 +1,12 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__transform.xml]
-[section:transform_2 transform (2)]
+[section:transform_3 transform (3)]
 
 Transforms from one geometry to another geometry using a strategy.
 
 [heading Synopsis]
-``template<typename Geometry1, typename Geometry2>
-bool transform (Geometry1 const &geometry1, Geometry2 &geometry2)``
+``template<typename Geometry1, typename Geometry2, typename Strategy>
+bool transform (Geometry1 const &geometry1, Geometry2 &geometry2, Strategy const &strategy)``
 
 [heading Parameters]
 
@@ -14,15 +14,10 @@
 [[Type] [Concept] [Name] [Description] ]
 [[Geometry1 const &] [first geometry type ] [geometry1] [first geometry ]]
 [[Geometry2 &] [second geometry type ] [geometry2] [second geometry ]]
+[[Strategy const &] [strategy ] [strategy] [the strategy to be used for transformation ]]
 ]
 
 
-[heading Returns]
-true if the transformation could be done
-
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -35,13 +30,13 @@
 
 [endsect]
 
-[section:transform_3 transform (3)]
+[section:transform_2 transform (2)]
 
 Transforms from one geometry to another geometry using a strategy.
 
 [heading Synopsis]
-``template<typename Geometry1, typename Geometry2, typename Strategy>
-bool transform (Geometry1 const &geometry1, Geometry2 &geometry2, Strategy const &strategy)``
+``template<typename Geometry1, typename Geometry2>
+bool transform (Geometry1 const &geometry1, Geometry2 &geometry2)``
 
 [heading Parameters]
 
@@ -49,12 +44,11 @@
 [[Type] [Concept] [Name] [Description] ]
 [[Geometry1 const &] [first geometry type ] [geometry1] [first geometry ]]
 [[Geometry2 &] [second geometry type ] [geometry2] [second geometry ]]
-[[Strategy const &] [strategy ] [strategy] [the strategy to be used for transformation ]]
 ]
 
 
-[heading Description]
-
+[heading Returns]
+true if the transformation could be done
 
 [heading Header]
 Either

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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -18,9 +18,6 @@
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -33,13 +30,13 @@
 
 [endsect]
 
-[section:union_inserter_3 union_inserter (3)]
+[section:union_inserter_4 union_inserter (4)]
 
 Combines two geometries which each other.
 
 [heading Synopsis]
-``template<typename GeometryOut, typename Geometry1, typename Geometry2, typename OutputIterator>
-OutputIterator union_inserter (Geometry1 const &geometry1, Geometry2 const &geometry2, OutputIterator out)``
+``template<typename GeometryOut, typename Geometry1, typename Geometry2, typename OutputIterator, typename Strategy>
+OutputIterator union_inserter (Geometry1 const &geometry1, Geometry2 const &geometry2, OutputIterator out, Strategy const &strategy)``
 
 [heading Parameters]
 
@@ -48,15 +45,13 @@
 [[Geometry1 const &] [first geometry type ] [geometry1] [first geometry ]]
 [[Geometry2 const &] [second geometry type ] [geometry2] [second geometry ]]
 [[OutputIterator] [output iterator ] [out] [the output iterator, outputting polygons ]]
+[[Strategy const &] [compound strategy for intersection ] [strategy] [the strategy ]]
 ]
 
 
 [heading Returns]
 the output iterator
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -69,13 +64,13 @@
 
 [endsect]
 
-[section:union_inserter_4 union_inserter (4)]
+[section:union_inserter_3 union_inserter (3)]
 
 Combines two geometries which each other.
 
 [heading Synopsis]
-``template<typename GeometryOut, typename Geometry1, typename Geometry2, typename OutputIterator, typename Strategy>
-OutputIterator union_inserter (Geometry1 const &geometry1, Geometry2 const &geometry2, OutputIterator out, Strategy const &strategy)``
+``template<typename GeometryOut, typename Geometry1, typename Geometry2, typename OutputIterator>
+OutputIterator union_inserter (Geometry1 const &geometry1, Geometry2 const &geometry2, OutputIterator out)``
 
 [heading Parameters]
 
@@ -84,16 +79,12 @@
 [[Geometry1 const &] [first geometry type ] [geometry1] [first geometry ]]
 [[Geometry2 const &] [second geometry type ] [geometry2] [second geometry ]]
 [[OutputIterator] [output iterator ] [out] [the output iterator, outputting polygons ]]
-[[Strategy const &] [compound strategy for intersection ] [strategy] [the strategy ]]
 ]
 
 
 [heading Returns]
 the output iterator
 
-[heading Description]
-
-
 [heading Header]
 Either
 

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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -16,9 +16,6 @@
 ]
 
 
-[heading Description]
-
-
 [heading Header]
 Either
 

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-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -1,12 +1,12 @@
 [/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]
 [/ Generated from ..\doxygen_output\xml\group__within.xml]
-[section:within_3 within (3)]
+[section:within_2 within (2)]
 
-Within, examine if a geometry is within another geometry, using a specified strategy.
+Within, examine if a geometry is within another geometry.
 
 [heading Synopsis]
-``template<typename Geometry1, typename Geometry2, typename Strategy>
-bool within (Geometry1 const &geometry1, Geometry2 const &geometry2, Strategy const &strategy)``
+``template<typename Geometry1, typename Geometry2>
+bool within (Geometry1 const &geometry1, Geometry2 const &geometry2)``
 
 [heading Parameters]
 
@@ -14,16 +14,12 @@
 [[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 ]]
-[[Strategy const &] [] [strategy] [strategy to be used ]]
 ]
 
 
 [heading Returns]
 true if geometry1 is completely contained within geometry2, else false
 
-[heading Description]
-
-
 [heading Header]
 Either
 
@@ -36,13 +32,13 @@
 
 [endsect]
 
-[section:within_2 within (2)]
+[section:within_3 within (3)]
 
-Within, examine if a geometry is within another geometry.
+Within, examine if a geometry is within another geometry, using a specified strategy.
 
 [heading Synopsis]
-``template<typename Geometry1, typename Geometry2>
-bool within (Geometry1 const &geometry1, Geometry2 const &geometry2)``
+``template<typename Geometry1, typename Geometry2, typename Strategy>
+bool within (Geometry1 const &geometry1, Geometry2 const &geometry2, Strategy const &strategy)``
 
 [heading Parameters]
 
@@ -50,15 +46,13 @@
 [[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 ]]
+[[Strategy const &] [] [strategy] [strategy to be used ]]
 ]
 
 
 [heading Returns]
 true if geometry1 is completely contained within geometry2, else false
 
-[heading Description]
-
-
 [heading Header]
 Either
 

Modified: sandbox/geometry/libs/geometry/example/extensions/gis/io/shapelib/shapelib.cpp
==============================================================================
--- sandbox/geometry/libs/geometry/example/extensions/gis/io/shapelib/shapelib.cpp (original)
+++ sandbox/geometry/libs/geometry/example/extensions/gis/io/shapelib/shapelib.cpp 2010-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -36,6 +36,7 @@
     {
         Geometry geometry;
         boost::geometry::read_wkt(wkt, geometry);
+ boost::geometry::correct(geometry);
         return AddShape(geometry);
     }
 };
@@ -64,6 +65,14 @@
             }
 
             {
+ shape_creator<bg::polygon<point_type> > sc("out/donut2");
+ sc.AddField<int>("dummy", 10);
+ int r = sc.AddGeomFromText("POLYGON ((174618.3423614502 504723.43828582764, 174658.97901153564 504727.76149749756, 174655.07703399658 504763.57702636719, 174655.89733123779 504767.03034210205, 174657.70821380615 504770.11280822754, 174660.34678649902 504772.52502441406, 174663.55408477783 504774.04540252686, 174871.51212310791 504793.95350646973, 174809.82281494141 504969.10485076904, 174592.13478088379 504995.37437438965, 174596.52947998047 504954.86187744141, 174596.31950378418 504951.57875061035, 174595.33219909668 504948.68436431885, 174597.70560455322 504928.34646606445, 174618.3423614502 504723.43828582764), (174658.489402771 504823.78255462646, 174646.87094116211 504938.40633392334, 174772.98456573486 504923.18756866455, 174803.11683654785 504837.63452911377, 174658.489402771 504823.78255462646))");
+ sc.WriteField(r, 0, 10);
+ }
+
+
+ {
                     shape_creator<bg::linestring<point_type> > sc("out/ls");
                     sc.AddField<int>("dummy", 10);
                     int r = sc.AddGeomFromText("LINESTRING(0 0,3 3,5 4,7 1)");

Modified: sandbox/geometry/libs/geometry/test/iterators/iterators.sln
==============================================================================
--- sandbox/geometry/libs/geometry/test/iterators/iterators.sln (original)
+++ sandbox/geometry/libs/geometry/test/iterators/iterators.sln 2010-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -1,7 +1,5 @@
 Microsoft Visual Studio Solution File, Format Version 9.00
 # Visual C++ Express 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ever_circling_closeable_reversible_iterator", "ever_circling_closeable_reversible_iterator.vcproj", "{8EC8E503-BCB9-4A58-AC33-D61B3B0C2EAF}"
-EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ever_circling_iterator", "ever_circling_iterator.vcproj", "{73F8C969-FA1E-4D9D-81F9-35B1206F0C14}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "circular_iterator", "circular_iterator.vcproj", "{46571A34-B68D-4854-90C0-56D29EE63FFE}"
@@ -20,10 +18,6 @@
                 Release|Win32 = Release|Win32
         EndGlobalSection
         GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {8EC8E503-BCB9-4A58-AC33-D61B3B0C2EAF}.Debug|Win32.ActiveCfg = Debug|Win32
- {8EC8E503-BCB9-4A58-AC33-D61B3B0C2EAF}.Debug|Win32.Build.0 = Debug|Win32
- {8EC8E503-BCB9-4A58-AC33-D61B3B0C2EAF}.Release|Win32.ActiveCfg = Release|Win32
- {8EC8E503-BCB9-4A58-AC33-D61B3B0C2EAF}.Release|Win32.Build.0 = Release|Win32
                 {73F8C969-FA1E-4D9D-81F9-35B1206F0C14}.Debug|Win32.ActiveCfg = Debug|Win32
                 {73F8C969-FA1E-4D9D-81F9-35B1206F0C14}.Debug|Win32.Build.0 = Debug|Win32
                 {73F8C969-FA1E-4D9D-81F9-35B1206F0C14}.Release|Win32.ActiveCfg = Release|Win32

Modified: sandbox/geometry/other/programs/doxygen_xml2qbk/doxygen_xml2qbk.cpp
==============================================================================
--- sandbox/geometry/other/programs/doxygen_xml2qbk/doxygen_xml2qbk.cpp (original)
+++ sandbox/geometry/other/programs/doxygen_xml2qbk/doxygen_xml2qbk.cpp 2010-08-16 08:56:31 EDT (Mon, 16 Aug 2010)
@@ -122,8 +122,10 @@
     std::string location;
     int line; // To sort - Doxygen changes order - we change it back
     std::vector<std::string> snippets;
+ std::vector<std::string> behaviors;
     std::vector<std::string> admonitions;
     std::vector<std::string> images;
+ std::string complexity;
 
     std::vector<param> template_parameters;
     std::vector<param> parameters;
@@ -315,6 +317,15 @@
         {
             el.admonitions.push_back(boost::trim_copy(std::string(node->value())));
         }
+ else if (full == ".detaileddescription.para.qbk.behavior")
+ {
+ el.behaviors.push_back(boost::trim_copy(std::string(node->value())));
+ }
+ else if (full == ".detaileddescription.para.qbk.complexity")
+ {
+ el.complexity = node->value();
+ boost::trim(el.complexity);
+ }
         else if (full == ".templateparamlist")
         {
             parse_parameter_list(node->first_node(), el.template_parameters);
@@ -517,7 +528,7 @@
             break;
         case function_define :
             {
- out << f.name;
+ out << "#define " << f.name;
                 bool first = true;
                 BOOST_FOREACH(param const& p, f.parameters)
                 {
@@ -531,7 +542,11 @@
             }
             break;
     }
- out << " " << f.argsstring << "``" << std::endl
+ if (! f.argsstring.empty())
+ {
+ out << " " << f.argsstring;
+ }
+ out << "``" << std::endl
         << std::endl;
 }
 
@@ -565,6 +580,41 @@
     }
 }
 
+void quickbook_behaviors(std::vector<std::string> const& behaviors, std::ostream& out)
+{
+ if (! behaviors.empty())
+ {
+ out << "[heading Behavior]" << std::endl
+ << "[table" << std::endl
+ << "[[Case] [Behavior] ]" << std::endl;
+ BOOST_FOREACH(std::string const& behavior, behaviors)
+ {
+ // Split at first ":"
+ std::size_t pos = behavior.find(":");
+ if (pos != std::string::npos)
+ {
+ std::string c = behavior.substr(0, pos);
+ std::string b = behavior.substr(pos + 1);
+ out << "[[" << c << "][" << b << "]]" << std::endl;
+ }
+ }
+ out << "]" << std::endl
+ << std::endl
+ << std::endl;
+ }
+}
+
+void quickbook_heading_string(std::string const& heading,
+ std::string const& contents, std::ostream& out)
+{
+ if (! contents.empty())
+ {
+ out << "[heading " << heading << "]" << std::endl
+ << contents << std::endl
+ << std::endl;
+ }
+}
+
 
 void quickbook_output(function const& f, std::ostream& out)
 {
@@ -576,11 +626,13 @@
     out << f.brief_description << std::endl;
     out << std::endl;
 
+ quickbook_heading_string("Description", f.detailed_description, out);
+
     out << "[heading Synopsis]" << std::endl;
     quickbook_synopsis(f, out);
 
- out << "[heading Parameters]" << std::endl;
- out << std::endl;
+ out << "[heading Parameters]" << std::endl
+ << std::endl;
 
     out << "[table" << std::endl << "[";
     if (f.type != function_define)
@@ -606,34 +658,23 @@
             << "]]"
             << std::endl;
     }
- out << "]" << std::endl;
- out << std::endl;
- out << std::endl;
+ out << "]" << std::endl
+ << std::endl
+ << std::endl;
 
- if (! f.return_description.empty())
- {
- out << "[heading Returns]" << std::endl;
- out << f.return_description << std::endl;
- out << std::endl;
- }
+ quickbook_heading_string("Returns", f.return_description, out);
+ //quickbook_heading_string("Model of", f.model_of, out);
 
- out << "[heading Description]" << std::endl;
- out << f.detailed_description << std::endl;
- out << std::endl;
+ quickbook_header(f.location, out);
+ quickbook_behaviors(f.behaviors, out);
 
- /*if (! f.model_of.empty())
- {
- out << "[heading Model of]" << std::endl;
- out << f.model_of << std::endl;
- out << std::endl;
- }*/
+ quickbook_heading_string("Complexity", f.complexity, out);
 
     BOOST_FOREACH(std::string const& admonition, f.admonitions)
     {
         out << admonition << std::endl;
     }
 
- quickbook_header(f.location, out);
     quickbook_snippets(f.snippets, out);
 
     if (! f.images.empty())
@@ -688,10 +729,7 @@
     out << "[section:" << short_name << " " << short_name << "]" << std::endl
         << std::endl;
 
- out << "[heading Description]" << std::endl
- << cos.detailed_description << std::endl
- << std::endl;
-
+ quickbook_heading_string("Description", cos.detailed_description, out);
 
     out << "[heading Synopsis]" << std::endl
         << "``";
@@ -792,6 +830,28 @@
     documentation doc;
     parse(xml.first_node(), doc);
 
+ // Boost.Geometry specific
+ // Copy behaviors if empty and function has same name
+ BOOST_FOREACH(function& f1, doc.functions)
+ {
+ BOOST_FOREACH(function const& f2, doc.functions)
+ {
+ if (f1.name == f2.name
+ || f1.name == std::string("make_") + f2.name
+ || f1.name == f2.name + std::string("_inserter"))
+ {
+ if (f1.behaviors.empty() && !f2.behaviors.empty())
+ {
+ f1.behaviors = f2.behaviors;
+ }
+ if (f1.complexity.empty() && !f2.complexity.empty())
+ {
+ f1.complexity = f2.complexity;
+ }
+ }
+ }
+ }
+
     std::cout
         << "[/ Generated by doxygen_xml2qbk, don't change, it will be overwritten automatically]" << std::endl
         << "[/ Generated from " << filename << "]" << std::endl;


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk