Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r68575 - in trunk/libs/geometry/doc: . doxy doxy/doxygen_input/groups ref/algorithms reference src/docutils/tools/doxygen_xml2qbk
From: barend.gehrels_at_[hidden]
Date: 2011-01-30 16:53:31


Author: barendgehrels
Date: 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
New Revision: 68575
URL: http://svn.boost.org/trac/boost/changeset/68575

Log:
Doc update, doc tool update
Added:
   trunk/libs/geometry/doc/reference/area_surveyor.qbk (contents, props changed)
   trunk/libs/geometry/doc/reference/centroid_exception.qbk (contents, props changed)
   trunk/libs/geometry/doc/reference/enum.qbk (contents, props changed)
   trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/for_debugger.ini (contents, props changed)
Text files modified:
   trunk/libs/geometry/doc/doxy/Doxyfile | 86 ++--------------
   trunk/libs/geometry/doc/doxy/doxygen_input/groups/groups.hpp | 1
   trunk/libs/geometry/doc/geometry.qbk | 3
   trunk/libs/geometry/doc/make_qbk.py | 75 ++++++++------
   trunk/libs/geometry/doc/quickref.xml | 7
   trunk/libs/geometry/doc/ref/algorithms/centroid.qbk | 7
   trunk/libs/geometry/doc/reference.qbk | 9 +
   trunk/libs/geometry/doc/reference/area.qbk | 2
   trunk/libs/geometry/doc/reference/area_huiller.qbk | 4
   trunk/libs/geometry/doc/reference/box.qbk | 2
   trunk/libs/geometry/doc/reference/box_range.qbk | 2
   trunk/libs/geometry/doc/reference/centroid.qbk | 8 +
   trunk/libs/geometry/doc/reference/centroid_average.qbk | 2
   trunk/libs/geometry/doc/reference/centroid_bashein_detmer.qbk | 5
   trunk/libs/geometry/doc/reference/circular_iterator.qbk | 2
   trunk/libs/geometry/doc/reference/closing_iterator.qbk | 2
   trunk/libs/geometry/doc/reference/closure.qbk | 5
   trunk/libs/geometry/doc/reference/convex_hull_graham_andrew.qbk | 2
   trunk/libs/geometry/doc/reference/distance.qbk | 2
   trunk/libs/geometry/doc/reference/distance_cross_track.qbk | 6
   trunk/libs/geometry/doc/reference/distance_haversine.qbk | 4
   trunk/libs/geometry/doc/reference/distance_projected_point.qbk | 6
   trunk/libs/geometry/doc/reference/distance_pythagoras.qbk | 4
   trunk/libs/geometry/doc/reference/ever_circling_iterator.qbk | 2
   trunk/libs/geometry/doc/reference/exception.qbk | 8 +
   trunk/libs/geometry/doc/reference/identity_view.qbk | 2
   trunk/libs/geometry/doc/reference/length.qbk | 2
   trunk/libs/geometry/doc/reference/point.qbk | 2
   trunk/libs/geometry/doc/reference/point_order.qbk | 5
   trunk/libs/geometry/doc/reference/point_xy.qbk | 3
   trunk/libs/geometry/doc/reference/polygon.qbk | 2
   trunk/libs/geometry/doc/reference/segment_range.qbk | 2
   trunk/libs/geometry/doc/reference/segment_range_iterator.qbk | 2
   trunk/libs/geometry/doc/reference/side_side_by_cross_track.qbk | 2
   trunk/libs/geometry/doc/reference/side_side_by_triangle.qbk | 2
   trunk/libs/geometry/doc/reference/simplify_douglas_peucker.qbk | 2
   trunk/libs/geometry/doc/reference/transform_inverse_transformer.qbk | 1
   trunk/libs/geometry/doc/reference/transform_map_transformer.qbk | 1
   trunk/libs/geometry/doc/reference/within.qbk | 15 ++
   trunk/libs/geometry/doc/reference/within_crossings_multiply.qbk | 2
   trunk/libs/geometry/doc/reference/within_franklin.qbk | 5
   trunk/libs/geometry/doc/reference/within_winding.qbk | 5
   trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_elements.hpp | 61 +++++++++--
   trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml2qbk.cpp | 4
   trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml_parser.hpp | 139 ++++++++++++++++++++++++----
   trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/quickbook_output.hpp | 198 ++++++++++++++++++++++++++++-----------
   46 files changed, 465 insertions(+), 248 deletions(-)

Modified: trunk/libs/geometry/doc/doxy/Doxyfile
==============================================================================
--- trunk/libs/geometry/doc/doxy/Doxyfile (original)
+++ trunk/libs/geometry/doc/doxy/Doxyfile 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -80,11 +80,12 @@
                         details_calc{1}="The free function \1 calculates the \1 of a geometry" \
                         details_calc2{2}="The free function \1 calculates the \2 of two geometries" \
                         details_calc2{1}="The free function \1 calculates the \1 of two geometries" \
+ details_check12{2}="The free function \1 checks if the first geometry \2 the second geometry" \
                         details_macro{2}="The macro \1 registers a \2 such that it is recognized by Boost.Geometry and that Boost.Geometry functionality can used with the specified point type" \
                         details_macro_const="The const version registers only read access to the fields, the point type is therefore read-only" \
                         details_macro_getset="The get/set version registers get and set methods separately and can be used for classes with protected member variables and get/set methods to change coordinates" \
                         details_default_strategy="It uses the default strategy, based on the coordinate system of the geometry." \
- details_strategy_reasons="Reasons to specify a strategy include: use another coordinate system for calculations; construct the strategy beforehand (e.g. with the radius of the Earth); select a strategy when there are more than one available for a calculation (e.g. distance over the Earth)" \
+ details_strategy_reasons="Reasons to specify a strategy include: use another coordinate system for calculations; construct the strategy beforehand (e.g. with the radius of the Earth); select a strategy when there are more than one available for a calculation." \
                         details_make{1}="This version with the make_ prefix returns the \1, and a template parameter must therefore be specified in the call." \
                         details_inserter{1}="This version with the _inserter suffix outputs the \1 to an output iterator, and a template parameter must therefore be specified in the call." \
                         return_calc{1}="The calculated \1" \
@@ -249,37 +250,7 @@
 ENUM_VALUES_PER_LINE = 4
 GENERATE_TREEVIEW = NO
 TREEVIEW_WIDTH = 250
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-LATEX_CMD_NAME = latex
-MAKEINDEX_CMD_NAME = makeindex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = YES
-USE_PDFLATEX = YES
-LATEX_BATCHMODE = NO
-LATEX_HIDE_INDICES = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-RTF_EXTENSIONS_FILE =
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-MAN_LINKS = NO
+
 #---------------------------------------------------------------------------
 # configuration options related to the XML output
 #---------------------------------------------------------------------------
@@ -288,17 +259,17 @@
 XML_SCHEMA =
 XML_DTD =
 XML_PROGRAMLISTING = NO
+
 #---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
+# Configuration options turned off
 #---------------------------------------------------------------------------
+GENERATE_LATEX = NO
+GENERATE_MAN = NO
+GENERATE_RTF = NO
 GENERATE_AUTOGEN_DEF = NO
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
 GENERATE_PERLMOD = NO
-PERLMOD_LATEX = NO
-PERLMOD_PRETTY = YES
-PERLMOD_MAKEVAR_PREFIX =
+
+
 #---------------------------------------------------------------------------
 # Configuration options related to the preprocessor
 #---------------------------------------------------------------------------
@@ -321,41 +292,8 @@
                          DOXYGEN_NO_SPECIALIZATIONS
 EXPAND_AS_DEFINED =
 SKIP_FUNCTION_MACROS = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-TAGFILES =
-GENERATE_TAGFILE =
-ALLEXTERNALS = NO
-EXTERNAL_GROUPS = YES
-PERL_PATH = /usr/bin/perl
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS = NO
-MSCGEN_PATH =
-HIDE_UNDOC_RELATIONS = YES
-HAVE_DOT = NO
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-GROUP_GRAPHS = YES
-UML_LOOK = NO
-TEMPLATE_RELATIONS = NO
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-CALL_GRAPH = NO
-CALLER_GRAPH = NO
-GRAPHICAL_HIERARCHY = YES
-DIRECTORY_GRAPH = YES
-DOT_IMAGE_FORMAT = png
-DOT_PATH =
-DOTFILE_DIRS =
-DOT_GRAPH_MAX_NODES = 50
-MAX_DOT_GRAPH_DEPTH = 0
-DOT_TRANSPARENT = YES
-DOT_MULTI_TARGETS = NO
-GENERATE_LEGEND = YES
-DOT_CLEANUP = YES
+
+
 #---------------------------------------------------------------------------
 # Configuration::additions related to the search engine
 #---------------------------------------------------------------------------

Modified: trunk/libs/geometry/doc/doxy/doxygen_input/groups/groups.hpp
==============================================================================
--- trunk/libs/geometry/doc/doxy/doxygen_input/groups/groups.hpp (original)
+++ trunk/libs/geometry/doc/doxy/doxygen_input/groups/groups.hpp 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -27,6 +27,7 @@
 \defgroup difference difference: difference of two geometries
 \defgroup disjoint disjoint: detect if geometries are not spatially related
 \defgroup distance distance: calculate distance between two geometries
+\defgroup enum enum: enumerations
 \defgroup envelope envelope: calculate envelope (minimum bounding rectangle) of a geometry
 \defgroup equals equals: detect if two geometries are spatially equal
 \defgroup exterior_ring exterior_ring: exterior_ring

Modified: trunk/libs/geometry/doc/geometry.qbk
==============================================================================
--- trunk/libs/geometry/doc/geometry.qbk (original)
+++ trunk/libs/geometry/doc/geometry.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -41,7 +41,8 @@
 [def __point__ Point]
 [def __linestring__ Linestring]
 [def __polygon__ Polygon]
-[def __multi_polygon__ Multi-polygon]
+[def __multi_point__ Multi point]
+[def __multi_polygon__ Multi Polygon]
 [def __range__ Rangelike (linestring, ring)]
 [def __other__ Other geometries]
 

Modified: trunk/libs/geometry/doc/make_qbk.py
==============================================================================
--- trunk/libs/geometry/doc/make_qbk.py (original)
+++ trunk/libs/geometry/doc/make_qbk.py 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -7,7 +7,7 @@
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-# http://www.boost.org/LICENSE_1_0.txt)9
+# http://www.boost.org/LICENSE_1_0.txt)
 # ============================================================================
 
 import os, sys
@@ -29,7 +29,10 @@
 def group_to_quickbook(section):
     os.system(cmd % ("group__" + section.replace("_", "__"), section))
 
-def model_to_quickbook(classname, section):
+def model_to_quickbook(section):
+ os.system(cmd % ("classboost_1_1geometry_1_1model_1_1" + section.replace("_", "__"), section))
+
+def model_to_quickbook2(classname, section):
     os.system(cmd % ("classboost_1_1geometry_1_1model_1_1" + classname, section))
 
 def struct_to_quickbook(section):
@@ -59,19 +62,27 @@
     , "length", "num_geometries", "num_interior_rings", "num_points"
     , "overlaps", "perimeter", "reverse", "simplify", "sym_difference"
     , "transform", "union", "unique", "within"]
+
 access_functions = ["get", "set", "exterior_ring", "interior_rings"
     , "num_points", "num_interior_rings", "num_geometries"]
     
+coordinate_systems = ["cartesian", "geographic", "polar", "spherical"]
+
 core = ["closure", "coordinate_system", "coordinate_type", "cs_tag"
     , "dimension", "exception", "geometry_id", "interior_type"
     , "is_areal", "is_linear", "is_multi", "is_radian", "point_order"
     , "point_type", "ring_type", "tag", "topological_dimension" ]
 
+exceptions = ["exception", "centroid_exception"];
+
 iterators = ["box_iterator", "circular_iterator", "closing_iterator"
     , "ever_circling_iterator", "segment_range_iterator"]
 
+models = ["point", "linestring", "box"
+ , "polygon", "segment", "ring"
+ , "multi_linestring", "multi_point", "multi_polygon", "referring_segment"]
+
 ranges = ["box_range", "segment_range"];
-views = ["closeable_view", "reversible_view", "identity_view"]
 
 strategies = ["distance::pythagoras", "distance::haversine"
     , "distance::cross_track", "distance::projected_point"
@@ -86,49 +97,45 @@
     , "transform::translate_transformer", "transform::ublas_transformer"
     ]
     
-coordinate_systems = ["cartesian", "geographic", "polar", "spherical"]
+views = ["closeable_view", "reversible_view", "identity_view"]
 
 
 
-for a in algorithms:
- group_to_quickbook(a)
+for i in algorithms:
+ group_to_quickbook(i)
     
-for a in access_functions:
- group_to_quickbook(a)
+for i in access_functions:
+ group_to_quickbook(i)
     
-for a in core:
- struct_to_quickbook(a)
+for i in coordinate_systems:
+ cs_to_quickbook(i)
 
-for a in iterators:
- struct_to_quickbook(a)
+for i in core:
+ struct_to_quickbook(i)
 
-for a in views:
- struct_to_quickbook(a)
-
-for a in ranges:
- class_to_quickbook(a)
+for i in exceptions:
+ class_to_quickbook(i)
+
+for i in iterators:
+ struct_to_quickbook(i)
+
+for i in models:
+ model_to_quickbook(i)
+
+for i in ranges:
+ class_to_quickbook(i)
 
-for a in strategies:
- strategy_to_quickbook(a)
+for i in strategies:
+ strategy_to_quickbook(i)
 
-for a in coordinate_systems:
- cs_to_quickbook(a)
+for i in views:
+ struct_to_quickbook(i)
     
 
+model_to_quickbook2("d2_1_1point__xy", "point_xy")
+
 group_to_quickbook("arithmetic")
 group_to_quickbook("register")
-
-model_to_quickbook("point", "point")
-model_to_quickbook("d2_1_1point__xy", "point_xy")
-model_to_quickbook("linestring", "linestring")
-model_to_quickbook("box", "box")
-model_to_quickbook("polygon", "polygon")
-model_to_quickbook("segment", "segment")
-model_to_quickbook("multi__linestring", "multi_linestring")
-model_to_quickbook("multi__point", "multi_point")
-model_to_quickbook("multi__polygon", "multi_polygon")
-model_to_quickbook("ring", "ring")
-model_to_quickbook("referring__segment", "referring_segment")
-
+group_to_quickbook("enum")
 
 os.system("bjam")

Modified: trunk/libs/geometry/doc/quickref.xml
==============================================================================
--- trunk/libs/geometry/doc/quickref.xml (original)
+++ trunk/libs/geometry/doc/quickref.xml 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -168,8 +168,8 @@
     </simplelist>
     <bridgehead renderas="sect3">Classes</bridgehead>
     <simplelist type="vert" columns="1">
- <member><link linkend="geometry.reference.exception">exception</link></member>
- <member> <link linkend="geometry.reference.centroid_exception">centroid_exception</link></member>
+ <member><link linkend="geometry.reference.exceptions.exception">exception</link></member>
+ <member> <link linkend="geometry.reference.exceptions.centroid_exception">centroid_exception</link></member>
     </simplelist>
    </entry>
   </row>
@@ -198,7 +198,8 @@
     <simplelist type="vert" columns="1">
     <member><link linkend="geometry.reference.max_corner">max_corner</link></member>
     <member><link linkend="geometry.reference.min_corner">min_corner</link></member>
- <member><link linkend="geometry.reference.order_selector">order_selector</link></member>
+ <member><link linkend="geometry.reference.enumerations.order_selector">order_selector</link></member>
+ <member><link linkend="geometry.reference.enumerations.closure_selector">closure_selector</link></member>
     </simplelist>
    </entry>
    <entry valign="top">

Modified: trunk/libs/geometry/doc/ref/algorithms/centroid.qbk
==============================================================================
--- trunk/libs/geometry/doc/ref/algorithms/centroid.qbk (original)
+++ trunk/libs/geometry/doc/ref/algorithms/centroid.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -13,12 +13,13 @@
 [heading Behavior]
 [table
 [[Case] [Behavior] ]
-[[__0dim__][Calculates centroid]]
+[[__point__][Returns the point itself as the centroid]]
+[[__multi_point__][Calculates centroid]]
 [[__1dim__][Calculates centroid]]
 [[__2dim__][Calculates centroid]]
-[[__empty__][Throws a centroid_exception]]
+[[__empty__][Throws a [link geometry.reference.exceptions.centroid_exception centroid_exception] ]]
 ]
 
-
 [heading Complexity]
 Linear
+

Modified: trunk/libs/geometry/doc/reference.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference.qbk (original)
+++ trunk/libs/geometry/doc/reference.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -261,5 +261,14 @@
 [include reference/arithmetic.qbk]
 [endsect]
 
+[section:exceptions Exceptions]
+[include reference/exception.qbk]
+[include reference/centroid_exception.qbk]
+[endsect]
+
+[section:enumerations Enumerations]
+[include reference/enum.qbk]
+[endsect]
+
 
 [endsect] [/reference]

Modified: trunk/libs/geometry/doc/reference/area.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/area.qbk (original)
+++ trunk/libs/geometry/doc/reference/area.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -18,7 +18,7 @@
 Calculates the area of a geometry using the specified strategy.
 
 [heading Description]
-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)
+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.
 
 [heading Synopsis]
 ``template<typename Geometry, typename Strategy>

Modified: trunk/libs/geometry/doc/reference/area_huiller.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/area_huiller.qbk (original)
+++ trunk/libs/geometry/doc/reference/area_huiller.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -47,7 +47,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``void apply (PointOfSegment const &p1, PointOfSegment const &p2, excess_sum &state) const ``
 
 ] [] [[* PointOfSegment const &]: ['p1]:
@@ -79,7 +79,7 @@
 
 
 [heading See also]
-[link geometry.reference.algorithms.area.area_2_with_strategy area]
+[link geometry.reference.algorithms.area.area_2_with_strategy area (with strategy)]
 
 [endsect]
 

Added: trunk/libs/geometry/doc/reference/area_surveyor.qbk
==============================================================================
--- (empty file)
+++ trunk/libs/geometry/doc/reference/area_surveyor.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -0,0 +1,70 @@
+[/============================================================================
+ Boost.Geometry (aka GGL, Generic Geometry Library)
+
+ Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2011 Mateusz Loskot (mateusz_at_[hidden])
+ Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+
+ Use, modification and distribution is subject to the Boost Software License,
+ Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
+=============================================================================/]
+
+
+[/ Generated by doxygen_xml2qbk, don't change, will be overwritten automatically]
+[/ Generated from doxy/doxygen_output/xml/classboost_1_1geometry_1_1strategy_1_1area_1_1surveyor.xml]
+[section:strategy_area_surveyor strategy::area::surveyor]
+
+Area calculation for cartesian points.
+
+[heading Description]
+Calculates area using the Surveyor's formula, a well-known triangulation algorithm
+
+[heading Synopsis]
+``template<typename PointOfSegment, typename CalculationType>
+class strategy::area::surveyor
+{
+ // ...
+};
+``
+
+[heading Template parameter(s)]
+[table
+[[Parameter] [Default] [Description]]
+[[typename PointOfSegment] [] [segment point type ]]
+[[typename CalculationType] [void] [numeric type for calculation (e.g. high precision); if [*void] then it is extracted automatically from the coordinate type and (if necessary) promoted to floating point]]
+]
+
+[heading Member Function(s)]
+[table
+[[Function] [Description] [Parameters] [Returns]]
+[[``void apply (PointOfSegment const &p1, PointOfSegment const &p2, summation &state)``
+
+] [] [[* PointOfSegment const &]: ['p1]:
+
+[* PointOfSegment const &]: ['p2]:
+
+[* summation &]: ['state]:
+
+
+
+
+]]
+[[``return_type result (summation const &state)``
+
+] [] [[* summation const &]: ['state]:
+
+
+
+
+]]
+]
+
+[heading Header]
+`#include <boost/geometry/strategies/cartesian/area_surveyor.hpp>`
+
+[heading See also]
+[link geometry.reference.algorithms.area.area_2_with_strategy area (with strategy)]
+
+[endsect]
+

Modified: trunk/libs/geometry/doc/reference/box.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/box.qbk (original)
+++ trunk/libs/geometry/doc/reference/box.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -57,7 +57,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``Point const & min_corner () const ``
 
 ] [] [

Modified: trunk/libs/geometry/doc/reference/box_range.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/box_range.qbk (original)
+++ trunk/libs/geometry/doc/reference/box_range.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -46,7 +46,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``const_iterator begin () const ``
 
 ] [] [

Modified: trunk/libs/geometry/doc/reference/centroid.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/centroid.qbk (original)
+++ trunk/libs/geometry/doc/reference/centroid.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -52,7 +52,7 @@
 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
+The free function centroid calculates the geometric center (or: center of mass) of a 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.
 
 [heading Synopsis]
 ``template<typename Geometry, typename Point, typename Strategy>
@@ -78,6 +78,8 @@
 `#include <boost/geometry/algorithms/centroid.hpp>`
 
 [include ref/algorithms/centroid.qbk]
+[heading Available Strategies]
+* [link geometry.reference.strategies.strategy_centroid_bashein_detmer Bashein Detmer (cartesian)]
 
 
 [endsect]
@@ -87,7 +89,7 @@
 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. This version with the make_ prefix returns the centroid, and a template parameter must therefore be specified in the call..
+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.. 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.
 
 [heading Synopsis]
 ``template<typename Point, typename Geometry, typename Strategy>
@@ -116,6 +118,8 @@
 `#include <boost/geometry/algorithms/centroid.hpp>`
 
 [include ref/algorithms/centroid.qbk]
+[heading Available Strategies]
+* [link geometry.reference.strategies.strategy_centroid_bashein_detmer Bashein Detmer (cartesian)]
 
 
 [endsect]

Modified: trunk/libs/geometry/doc/reference/centroid_average.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/centroid_average.qbk (original)
+++ trunk/libs/geometry/doc/reference/centroid_average.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -34,7 +34,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``void apply (Point const &p, sum &state)``
 
 ] [] [[* Point const &]: ['p]:

Modified: trunk/libs/geometry/doc/reference/centroid_bashein_detmer.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/centroid_bashein_detmer.qbk (original)
+++ trunk/libs/geometry/doc/reference/centroid_bashein_detmer.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -44,7 +44,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``void apply (PointOfSegment const &p1, PointOfSegment const &p2, sums &state)``
 
 ] [] [[* PointOfSegment const &]: ['p1]:
@@ -72,5 +72,8 @@
 [heading Header]
 `#include <boost/geometry/strategies/cartesian/centroid_bashein_detmer.hpp>`
 
+[heading See also]
+[link geometry.reference.algorithms.centroid.centroid_3_with_strategy centroid (with strategy)]
+
 [endsect]
 

Added: trunk/libs/geometry/doc/reference/centroid_exception.qbk
==============================================================================
--- (empty file)
+++ trunk/libs/geometry/doc/reference/centroid_exception.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -0,0 +1,66 @@
+[/============================================================================
+ Boost.Geometry (aka GGL, Generic Geometry Library)
+
+ Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2011 Mateusz Loskot (mateusz_at_[hidden])
+ Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+
+ Use, modification and distribution is subject to the Boost Software License,
+ Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
+=============================================================================/]
+
+
+[/ Generated by doxygen_xml2qbk, don't change, will be overwritten automatically]
+[/ Generated from doxy/doxygen_output/xml/classboost_1_1geometry_1_1centroid__exception.xml]
+[section:centroid_exception centroid_exception]
+
+Centroid Exception.
+
+[heading Description]
+The centroid_exception is thrown if the free centroid function is called with geometries for which the centroid cannot be calculated. For example: a linestring without points, a polygon without points, an empty multi-geometry.
+
+[heading Synopsis]
+``class centroid_exception
+ : public exception
+{
+ // ...
+};
+``
+
+[heading Constructor(s)]
+[table
+[[Function] [Description] [Parameters] ]
+[[``centroid_exception ()``
+
+] [] [
+
+
+]]
+]
+
+[heading Member Function(s)]
+[table
+[[Function] [Description] [Parameters] [Returns]]
+[[``char const * what () const ``
+
+] [] [
+
+
+]]
+]
+
+[heading Header]
+Either
+
+`#include <boost/geometry/geometry.hpp>`
+
+Or
+
+`#include <boost/geometry/algorithms/centroid.hpp>`
+
+[heading See also]
+* [link geometry.reference.algorithms.centroid the centroid function]
+
+[endsect]
+

Modified: trunk/libs/geometry/doc/reference/circular_iterator.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/circular_iterator.qbk (original)
+++ trunk/libs/geometry/doc/reference/circular_iterator.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -58,7 +58,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``void moveto (Iterator it)``
 
 ] [] [[* Iterator]: ['it]:

Modified: trunk/libs/geometry/doc/reference/closing_iterator.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/closing_iterator.qbk (original)
+++ trunk/libs/geometry/doc/reference/closing_iterator.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -62,7 +62,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``closing_iterator< Range > & operator= (closing_iterator< Range > const &source)``
 
 ] [] [[* < Range > const &]: ['source]:

Modified: trunk/libs/geometry/doc/reference/closure.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/closure.qbk (original)
+++ trunk/libs/geometry/doc/reference/closure.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -15,7 +15,7 @@
 [/ Generated from doxy/doxygen_output/xml/structboost_1_1geometry_1_1closure.xml]
 [section:closure closure]
 
-Meta-function which defines closure of any geometry.
+Meta-function which defines closure of a geometry type.
 
 [heading Synopsis]
 ``template<typename Geometry>
@@ -34,5 +34,8 @@
 [heading Header]
 `#include <boost/geometry/core/closure.hpp>`
 
+[heading See also]
+[link geometry.reference.enumerations.order_selector The order_selector enumeration]
+
 [endsect]
 

Modified: trunk/libs/geometry/doc/reference/convex_hull_graham_andrew.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/convex_hull_graham_andrew.qbk (original)
+++ trunk/libs/geometry/doc/reference/convex_hull_graham_andrew.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -34,7 +34,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``void apply (InputGeometry const &geometry, partitions &state) const ``
 
 ] [] [[* InputGeometry const &]: ['geometry]:

Modified: trunk/libs/geometry/doc/reference/distance.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/distance.qbk (original)
+++ trunk/libs/geometry/doc/reference/distance.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -82,7 +82,7 @@
 Calculate the distance of two geometries using the specified strategy.
 
 [heading Description]
-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)
+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.
 
 [heading Synopsis]
 ``template<typename Geometry1, typename Geometry2, typename Strategy>

Modified: trunk/libs/geometry/doc/reference/distance_cross_track.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/distance_cross_track.qbk (original)
+++ trunk/libs/geometry/doc/reference/distance_cross_track.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -34,7 +34,7 @@
 [[typename Point] [] [point type ]]
 [[typename PointOfSegment] [Point] [segment point type ]]
 [[typename CalculationType] [void] [numeric type for calculation (e.g. high precision); if [*void] then it is extracted automatically from the coordinate type and (if necessary) promoted to floating point ]]
-[[typename Strategy] [typename services::default_strategy<point_tag, Point>::type] [strategy, underlying point-point distance strategy, defaults to haversine]]
+[[typename Strategy] [typename services::default_strategy<point_tag, Point>::type] [underlying point-point distance strategy, defaults to haversine]]
 ]
 
 [heading Constructor(s)]
@@ -66,7 +66,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``return_type apply (Point const &p, PointOfSegment const &sp1, PointOfSegment const &sp2) const ``
 
 ] [] [[* Point const &]: ['p]:
@@ -91,7 +91,7 @@
 `#include <boost/geometry/strategies/spherical/distance_cross_track.hpp>`
 
 [heading See also]
-[link geometry.reference.algorithms.distance.distance_3_with_strategy distance]
+[link geometry.reference.algorithms.distance.distance_3_with_strategy distance (with strategy)]
 
 [endsect]
 

Modified: trunk/libs/geometry/doc/reference/distance_haversine.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/distance_haversine.qbk (original)
+++ trunk/libs/geometry/doc/reference/distance_haversine.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -48,7 +48,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``calculation_type apply (Point1 const &p1, Point2 const &p2) const ``
 
 ] [applies the distance calculation ] [[* Point1 const &]: ['p1]: first point
@@ -77,7 +77,7 @@
 `#include <boost/geometry/strategies/spherical/distance_haversine.hpp>`
 
 [heading See also]
-[link geometry.reference.algorithms.distance.distance_3_with_strategy distance]
+[link geometry.reference.algorithms.distance.distance_3_with_strategy distance (with strategy)]
 
 [endsect]
 

Modified: trunk/libs/geometry/doc/reference/distance_projected_point.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/distance_projected_point.qbk (original)
+++ trunk/libs/geometry/doc/reference/distance_projected_point.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -34,12 +34,12 @@
 [[typename Point] [] [point type ]]
 [[typename PointOfSegment] [Point] [segment point type ]]
 [[typename CalculationType] [void] [numeric type for calculation (e.g. high precision); if [*void] then it is extracted automatically from the coordinate type and (if necessary) promoted to floating point ]]
-[[typename Strategy] [pythagoras<Point, PointOfSegment, CalculationType>] [strategy, underlying point-point distance strategy ]]
+[[typename Strategy] [pythagoras<Point, PointOfSegment, CalculationType>] [underlying point-point distance strategy ]]
 ]
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``calculation_type apply (Point const &p, PointOfSegment const &p1, PointOfSegment const &p2) const ``
 
 ] [] [[* Point const &]: ['p]:
@@ -58,7 +58,7 @@
 `#include <boost/geometry/strategies/cartesian/distance_projected_point.hpp>`
 
 [heading See also]
-[link geometry.reference.algorithms.distance.distance_3_with_strategy distance]
+[link geometry.reference.algorithms.distance.distance_3_with_strategy distance (with strategy)]
 
 [endsect]
 

Modified: trunk/libs/geometry/doc/reference/distance_pythagoras.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/distance_pythagoras.qbk (original)
+++ trunk/libs/geometry/doc/reference/distance_pythagoras.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -35,7 +35,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``calculation_type apply (Point1 const &p1, Point2 const &p2)``
 
 ] [applies the distance calculation using pythagoras ] [[* Point1 const &]: ['p1]: first point
@@ -57,7 +57,7 @@
 [heading Notes]
 [note Can be used for points with two, three or more dimensions]
 [heading See also]
-[link geometry.reference.algorithms.distance.distance_3_with_strategy distance]
+[link geometry.reference.algorithms.distance.distance_3_with_strategy distance (with strategy)]
 
 [endsect]
 

Added: trunk/libs/geometry/doc/reference/enum.qbk
==============================================================================
--- (empty file)
+++ trunk/libs/geometry/doc/reference/enum.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -0,0 +1,73 @@
+[/============================================================================
+ Boost.Geometry (aka GGL, Generic Geometry Library)
+
+ Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2011 Mateusz Loskot (mateusz_at_[hidden])
+ Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+
+ Use, modification and distribution is subject to the Boost Software License,
+ Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
+=============================================================================/]
+
+
+[/ Generated by doxygen_xml2qbk, don't change, will be overwritten automatically]
+[/ Generated from doxy/doxygen_output/xml/group__enum.xml]
+[section:closure_selector closure_selector]
+
+Enumerates options for defining if polygons are open or closed.
+
+[heading Description]
+The enumeration closure_selector describes options for if a polygon is open or closed. In a closed polygon the very first point (per ring) should be equal to the very last point. The specific closing property of a polygon type is defined by the closure metafunction. The closure metafunction defines a value, which is one of the values enumerated in the closure_selector
+
+[heading Synopsis]
+``enum closure_selector {open = 0, closed = 1, closure_undertermined = -1};``
+
+[heading Values]
+
+[table
+[[Value] [Description] ]
+[[open] []]
+[[closed] []]
+[[closure_undertermined] []]
+]
+
+
+[heading Header]
+`#include <boost/geometry/core/closure.hpp>`
+
+[heading See also]
+[link geometry.reference.core.closure The closure metafunction]
+
+
+[endsect]
+
+[section:order_selector order_selector]
+
+Enumerates options for the order of points within polygons.
+
+[heading Description]
+The enumeration order_selector describes options for the order of points within a polygon. Polygons can be ordered either clockwise or counterclockwise. The specific order of a polygon type is defined by the point_order metafunction. The point_order metafunction defines a value, which is one of the values enumerated in the order_selector
+
+[heading Synopsis]
+``enum order_selector {clockwise = 1, counterclockwise = 2, order_undetermined = 0};``
+
+[heading Values]
+
+[table
+[[Value] [Description] ]
+[[clockwise] [Points are ordered clockwise. ]]
+[[counterclockwise] [Points are ordered counter clockwise. ]]
+[[order_undetermined] [Points might be stored in any order, the algorithm will find out (not yet supported). ]]
+]
+
+
+[heading Header]
+`#include <boost/geometry/core/point_order.hpp>`
+
+[heading See also]
+[link geometry.reference.core.point_order The point_order metafunction]
+
+
+[endsect]
+

Modified: trunk/libs/geometry/doc/reference/ever_circling_iterator.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/ever_circling_iterator.qbk (original)
+++ trunk/libs/geometry/doc/reference/ever_circling_iterator.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -64,7 +64,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``void moveto (Iterator it)``
 
 ] [] [[* Iterator]: ['it]:

Modified: trunk/libs/geometry/doc/reference/exception.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/exception.qbk (original)
+++ trunk/libs/geometry/doc/reference/exception.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -12,13 +12,17 @@
 
 
 [/ Generated by doxygen_xml2qbk, don't change, will be overwritten automatically]
-[/ Generated from doxy/doxygen_output/xml/structboost_1_1geometry_1_1exception.xml]
+[/ Generated from doxy/doxygen_output/xml/classboost_1_1geometry_1_1exception.xml]
 [section:exception exception]
 
-Base exception class for GGL.
+Base exception class for Boost.Geometry algorithms.
+
+[heading Description]
+This class is never thrown. All exceptions thrown in Boost.Geometry are derived from exception, so it might be convenient to catch it.
 
 [heading Synopsis]
 ``class exception
+ : public std::exception
 {
   // ...
 };

Modified: trunk/libs/geometry/doc/reference/identity_view.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/identity_view.qbk (original)
+++ trunk/libs/geometry/doc/reference/identity_view.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -46,7 +46,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``const_iterator begin () const ``
 
 ] [] [

Modified: trunk/libs/geometry/doc/reference/length.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/length.qbk (original)
+++ trunk/libs/geometry/doc/reference/length.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -18,7 +18,7 @@
 Calculates the length of a geometry using the specified strategy.
 
 [heading Description]
-The free function length calculates the length (the sum of distances between consecutive points) 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)
+The free function length calculates the length (the sum of distances between consecutive points) 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.
 
 [heading Synopsis]
 ``template<typename Geometry, typename Strategy>

Modified: trunk/libs/geometry/doc/reference/point.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/point.qbk (original)
+++ trunk/libs/geometry/doc/reference/point.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -64,7 +64,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``template<std::size_t K>
 CoordinateType const & get () const ``
 

Modified: trunk/libs/geometry/doc/reference/point_order.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/point_order.qbk (original)
+++ trunk/libs/geometry/doc/reference/point_order.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -15,7 +15,7 @@
 [/ Generated from doxy/doxygen_output/xml/structboost_1_1geometry_1_1point__order.xml]
 [section:point_order point_order]
 
-Meta-function which defines point order of any geometry.
+Metafunction which defines point order of a geometry type.
 
 [heading Synopsis]
 ``template<typename Geometry>
@@ -34,5 +34,8 @@
 [heading Header]
 `#include <boost/geometry/core/point_order.hpp>`
 
+[heading See also]
+[link geometry.reference.enumerations.closure_selector The closure_selector enumeration]
+
 [endsect]
 

Modified: trunk/libs/geometry/doc/reference/point_xy.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/point_xy.qbk (original)
+++ trunk/libs/geometry/doc/reference/point_xy.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -23,6 +23,7 @@
 [heading Synopsis]
 ``template<typename CoordinateType, typename CoordinateSystem>
 class model::d2::point_xy
+ : public model::point< CoordinateType, 2, CoordinateSystem >
 {
   // ...
 };
@@ -58,7 +59,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``CoordinateType const & x () const ``
 
 ] [Get x-value. ] [

Modified: trunk/libs/geometry/doc/reference/polygon.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/polygon.qbk (original)
+++ trunk/libs/geometry/doc/reference/polygon.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -42,7 +42,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``ring_type const & outer () const ``
 
 ] [] [

Modified: trunk/libs/geometry/doc/reference/segment_range.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/segment_range.qbk (original)
+++ trunk/libs/geometry/doc/reference/segment_range.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -46,7 +46,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``const_iterator begin () const ``
 
 ] [] [

Modified: trunk/libs/geometry/doc/reference/segment_range_iterator.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/segment_range_iterator.qbk (original)
+++ trunk/libs/geometry/doc/reference/segment_range_iterator.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -62,7 +62,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``segment_range_iterator< Segment > & operator= (segment_range_iterator< Segment > const &source)``
 
 ] [] [[* < Segment > const &]: ['source]:

Modified: trunk/libs/geometry/doc/reference/side_side_by_cross_track.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/side_side_by_cross_track.qbk (original)
+++ trunk/libs/geometry/doc/reference/side_side_by_cross_track.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -36,7 +36,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``template<typename P1, typename P2, typename P>
 int apply (P1 const &p1, P2 const &p2, P const &p)``
 

Modified: trunk/libs/geometry/doc/reference/side_side_by_triangle.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/side_side_by_triangle.qbk (original)
+++ trunk/libs/geometry/doc/reference/side_side_by_triangle.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -36,7 +36,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``template<typename P1, typename P2, typename P>
 int apply (P1 const &p1, P2 const &p2, P const &p)``
 

Modified: trunk/libs/geometry/doc/reference/simplify_douglas_peucker.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/simplify_douglas_peucker.qbk (original)
+++ trunk/libs/geometry/doc/reference/simplify_douglas_peucker.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -37,7 +37,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``template<typename Range, typename OutputIterator>
 OutputIterator apply (Range const &range, OutputIterator out, double max_distance)``
 

Modified: trunk/libs/geometry/doc/reference/transform_inverse_transformer.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/transform_inverse_transformer.qbk (original)
+++ trunk/libs/geometry/doc/reference/transform_inverse_transformer.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -20,6 +20,7 @@
 [heading Synopsis]
 ``template<typename P1, typename P2>
 class strategy::transform::inverse_transformer
+ : public strategy::transform::ublas_transformer< P1, P2, dimension< P1 >::type::value, dimension< P2 >::type::value >
 {
   // ...
 };

Modified: trunk/libs/geometry/doc/reference/transform_map_transformer.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/transform_map_transformer.qbk (original)
+++ trunk/libs/geometry/doc/reference/transform_map_transformer.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -20,6 +20,7 @@
 [heading Synopsis]
 ``template<typename P1, typename P2, bool Mirror, bool SameScale, std::size_t Dimension1, std::size_t Dimension2>
 class strategy::transform::map_transformer
+ : public strategy::transform::ublas_transformer< P1, P2, Dimension1, Dimension2 >
 {
   // ...
 };

Modified: trunk/libs/geometry/doc/reference/within.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/within.qbk (original)
+++ trunk/libs/geometry/doc/reference/within.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -15,7 +15,10 @@
 [/ Generated from doxy/doxygen_output/xml/group__within.xml]
 [section:within_3_with_strategy within (with strategy)]
 
-Within, examine if a geometry is within another geometry, using a specified strategy.
+Checks if the first geometry is completely inside the second geometry using the specified strategy.
+
+[heading Description]
+The free function within checks if the first geometry is completely inside the second 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.
 
 [heading Synopsis]
 ``template<typename Geometry1, typename Geometry2, typename Strategy>
@@ -43,12 +46,20 @@
 
 `#include <boost/geometry/algorithms/within.hpp>`
 
+[heading Available Strategies]
+* [link geometry.reference.strategies.strategy_within_winding Winding (coordinate system agnostic)]
+* [link geometry.reference.strategies.strategy_within_franklin Franklin (cartesian)]
+* [link geometry.reference.strategies.strategy_within_crossings_multiply Crossings Multiply (cartesian)]
+
 
 [endsect]
 
 [section:within_2 within]
 
-Checks if the first geometry completely inside the second geometry.
+Checks if the first geometry is completely inside the second geometry.
+
+[heading Description]
+The free function within checks if the first geometry is completely inside the second geometry.
 
 [heading Synopsis]
 ``template<typename Geometry1, typename Geometry2>

Modified: trunk/libs/geometry/doc/reference/within_crossings_multiply.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/within_crossings_multiply.qbk (original)
+++ trunk/libs/geometry/doc/reference/within_crossings_multiply.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -35,7 +35,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``bool apply (Point const &point, PointOfSegment const &seg1, PointOfSegment const &seg2, flags &state)``
 
 ] [] [[* Point const &]: ['point]:

Modified: trunk/libs/geometry/doc/reference/within_franklin.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/within_franklin.qbk (original)
+++ trunk/libs/geometry/doc/reference/within_franklin.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -35,7 +35,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``bool apply (Point const &point, PointOfSegment const &seg1, PointOfSegment const &seg2, crossings &state)``
 
 ] [] [[* Point const &]: ['point]:
@@ -63,5 +63,8 @@
 [heading Header]
 `#include <boost/geometry/strategies/cartesian/point_in_poly_franklin.hpp>`
 
+[heading See also]
+[link geometry.reference.algorithms.within.within_3_with_strategy within (with strategy)]
+
 [endsect]
 

Modified: trunk/libs/geometry/doc/reference/within_winding.qbk
==============================================================================
--- trunk/libs/geometry/doc/reference/within_winding.qbk (original)
+++ trunk/libs/geometry/doc/reference/within_winding.qbk 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -35,7 +35,7 @@
 
 [heading Member Function(s)]
 [table
-[[Function] [Description] [Parameters] [Returns] ]
+[[Function] [Description] [Parameters] [Returns]]
 [[``bool apply (Point const &point, PointOfSegment const &s1, PointOfSegment const &s2, counter &state)``
 
 ] [] [[* Point const &]: ['point]:
@@ -63,5 +63,8 @@
 [heading Header]
 `#include <boost/geometry/strategies/agnostic/point_in_poly_winding.hpp>`
 
+[heading See also]
+[link geometry.reference.algorithms.within.within_3_with_strategy within (with strategy)]
+
 [endsect]
 

Modified: trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_elements.hpp
==============================================================================
--- trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_elements.hpp (original)
+++ trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_elements.hpp 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -14,18 +14,43 @@
 #include <vector>
 
 
-// contains (template)parameter
-struct parameter
+enum markup_type { markup_default, markup_synopsis };
+enum markup_order_type { markup_any, markup_before, markup_after };
+
+// TODO: rename, not all are functions
+enum function_type
+{
+ function_unknown,
+ function_define,
+ function_constructor,
+ function_member,
+ function_free
+};
+
+struct base_element
 {
     std::string name;
- std::string description;
+ std::string brief_description;
+
+ base_element(std::string const& n = "")
+ : name(n)
+ {}
+};
+
+
+// contains (template)parameter
+struct parameter : public base_element
+{
     std::string type;
     std::string default_value; // for template parameters
     std::string fulltype; // post-processed
 };
 
-enum markup_type { markup_default, markup_synopsis };
-enum markup_order_type { markup_any, markup_before, markup_after };
+struct enumeration_value : public base_element
+{
+ std::string initializer;
+};
+
 
 
 struct markup
@@ -57,11 +82,10 @@
     }
 };
 
-// Basic element, base of a class/struct, function, define
-struct element
+// Base of a class/struct, function, define
+struct element : public base_element
 {
- std::string name;
- std::string brief_description, detailed_description;
+ std::string detailed_description;
     std::string location;
     int line; // To sort - Doxygen changes order - we change it back
 
@@ -81,7 +105,6 @@
     {}
 };
 
-enum function_type { function_unknown, function_define, function_constructor, function_member, function_free };
 
 struct function : public element
 {
@@ -98,6 +121,13 @@
 
 };
 
+
+struct enumeration : public element
+{
+ std::vector<enumeration_value> enumeration_values;
+};
+
+
 struct base_class
 {
     std::string name;
@@ -110,15 +140,22 @@
     std::string name, fullname;
     std::vector<function> functions;
 
+ std::vector<base_element> typedefs;
+ std::vector<base_element> variables;
+
     std::vector<base_class> base_classes;
 };
 
 
 struct documentation
 {
- class_or_struct cos;
- std::vector<function> functions;
+ // Only one expected (no grouping)
+ class_or_struct cos;
+
+ // There can be many of them (in groups):
+ std::vector<function> functions;
     std::vector<function> defines;
+ std::vector<enumeration> enumerations;
 };
 
 

Modified: trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml2qbk.cpp
==============================================================================
--- trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml2qbk.cpp (original)
+++ trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml2qbk.cpp 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -158,6 +158,10 @@
         {
             quickbook_output(f, config, std::cout);
         }
+ BOOST_FOREACH(enumeration const& e, doc.enumerations)
+ {
+ quickbook_output(e, config, std::cout);
+ }
 
         if (! doc.cos.name.empty())
         {

Modified: trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml_parser.hpp
==============================================================================
--- trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml_parser.hpp (original)
+++ trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml_parser.hpp 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -33,13 +33,12 @@
 }
 
 
-
 static inline void add_or_set(std::vector<parameter>& parameters, parameter const& p)
 {
     std::vector<parameter>::iterator it = std::find_if(parameters.begin(), parameters.end(), par_by_name(p.name));
     if (it != parameters.end())
     {
- if (it->description.empty()) it->description = p.description;
+ if (it->brief_description.empty()) it->brief_description = p.brief_description;
         if (it->type.empty()) it->type = p.type;
         if (it->fulltype.empty()) it->fulltype = p.fulltype;
     }
@@ -49,6 +48,9 @@
     }
 }
 
+
+
+
 /// Parses a "para" element
 /*
 This is used for different purposes within Doxygen.
@@ -122,7 +124,7 @@
         }
         else if (name == "para")
         {
- parse_para(node, p.description);
+ parse_para(node, p.brief_description);
         }
 
         parse_parameter(node->first_node(), p);
@@ -130,6 +132,32 @@
     }
 }
 
+static void parse_enumeration_value(rapidxml::xml_node<>* node, enumeration_value& value)
+{
+ // <enumvalue><name>green</name><initializer> 2</initializer>
+ // <briefdescription><para>...</para></briefdescription>
+ // <detaileddescription><para>...</para></detaileddescription>
+ // </enumvalue>
+ if (node != NULL)
+ {
+ std::string node_name = node->name();
+
+ if (node_name == "name") value.name = node->value();
+ else if (node_name == "para")
+ {
+ // Parses both brief AND detailed into this description
+ parse_para(node, value.brief_description);
+ }
+ else if (node_name == "initializer")
+ {
+ value.initializer = node->value();
+ }
+
+ parse_enumeration_value(node->first_node(), value);
+ parse_enumeration_value(node->next_sibling(), value);
+ }
+}
+
 // Definition is a function or a class/struct
 template <typename Parameters>
 static void parse_parameter_list(rapidxml::xml_node<>* node, Parameters& parameters)
@@ -149,7 +177,7 @@
                     parameters.end(), par_by_name(p.name));
                 if (it != parameters.end())
                 {
- it->description = p.description;
+ it->brief_description = p.brief_description;
                 }
                 else
                 {
@@ -316,6 +344,49 @@
     }
 }
 
+static void parse_enumeration(rapidxml::xml_node<>* node, configuration const& config, std::string const& parent, enumeration& e)
+{
+ if (node != NULL)
+ {
+ std::string name = node->name();
+ std::string full = parent + "." + name;
+
+ if (full == ".name") e.name = node->value();
+ else if (full == ".enumvalue")
+ {
+ enumeration_value value;
+ parse_enumeration_value(node->first_node(), value);
+ e.enumeration_values.push_back(value);
+ }
+
+ parse_enumeration(node->first_node(), config, full, e);
+ parse_enumeration(node->next_sibling(), config, parent, e);
+ }
+}
+
+
+static std::string parse_named_node(rapidxml::xml_node<>* node, std::string const& look_for_name)
+{
+ if (node != NULL)
+ {
+ std::string node_name = node->name();
+ std::string contents;
+
+ if (boost::equals(node_name, look_for_name))
+ {
+ contents = node->value();
+ }
+
+ return contents
+ + parse_named_node(node->first_node(), look_for_name)
+ + parse_named_node(node->next_sibling(), look_for_name);
+ }
+ return "";
+}
+
+
+
+
 static void parse(rapidxml::xml_node<>* node, configuration const& config, documentation& doc, bool member = false)
 {
     if (node != NULL)
@@ -332,17 +403,15 @@
         else if (nodename == "sectiondef")
         {
             std::string kind = get_attribute(node, "kind");
- if (kind == "func" )
- {
- // Get free function definition
- recurse = true;
- }
- if (kind == "define" )
+
+ if (kind == "func"
+ || kind == "define"
+ || kind == "enum"
+ )
             {
- // Get define or registration macro
                 recurse = true;
             }
- else if (kind == "public-static-func" || kind == "public-func")
+ else if (boost::starts_with(kind, "public"))
             {
                 recurse = true;
                 is_member = true;
@@ -364,19 +433,16 @@
         else if (nodename == "memberdef")
         {
             std::string kind = get_attribute(node, "kind");
- if (kind == "function" || kind == "define")
+ if (kind == "function")
             {
                 function f;
                 parse_element(node->first_node(), config, "", f);
                 parse_function(node->first_node(), config, "", f);
- if (kind == "define")
- {
- f.type = function_define;
- doc.defines.push_back(f);
- }
- else if (member)
+ if (member)
                 {
- f.type = f.name == doc.cos.name ? function_constructor : function_member;
+ f.type = boost::equals(f.name, doc.cos.name)
+ ? function_constructor
+ : function_member;
                     doc.cos.functions.push_back(f);
                 }
                 else
@@ -385,6 +451,39 @@
                     doc.functions.push_back(f);
                 }
             }
+ else if (kind == "define")
+ {
+ function f;
+ f.type = function_define;
+ parse_element(node->first_node(), config, "", f);
+ parse_function(node->first_node(), config, "", f);
+ }
+ else if (kind == "enum")
+ {
+ enumeration e;
+ parse_element(node->first_node(), config, "", e);
+ parse_enumeration(node->first_node(), config, "", e);
+ doc.enumerations.push_back(e);
+ }
+ else if (kind == "typedef")
+ {
+ if (boost::equals(get_attribute(node, "prot"), "public"))
+ {
+ std::string name = parse_named_node(node->first_node(), "name");
+ doc.cos.typedefs.push_back(base_element(name));
+ }
+ }
+ else if (kind == "variable")
+ {
+ if (boost::equals(get_attribute(node, "static"), "yes")
+ && boost::equals(get_attribute(node, "mutable"), "no")
+ && boost::equals(get_attribute(node, "prot"), "public"))
+ {
+ std::string name = parse_named_node(node->first_node(), "name");
+ doc.cos.variables.push_back(base_element(name));
+ }
+ }
+
         }
         else if (nodename == "compoundname")
         {

Added: trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/for_debugger.ini
==============================================================================
--- (empty file)
+++ trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/for_debugger.ini 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -0,0 +1,9 @@
+# xml=../../../../doxy/doxygen_output/xml/classboost_1_1geometry_1_1model_1_1d2_1_1point__xy.xml
+# xml=../../../../doxy/doxygen_output/xml/classboost_1_1geometry_1_1model_1_1polygon.xml
+# xml=../../../../doxy/doxygen_output/xml/group__area.xml
+xml=../../../../doxy/doxygen_output/xml/classboost_1_1geometry_1_1strategy_1_1distance_1_1pythagoras.xml
+start_include=boost/geometry/
+convenience_header_path=../../../../../../../boost/geometry/
+convenience_headers=geometry.hpp,geometries/geometries.hpp,multi/multi.hpp
+skip_namespace=boost::geometry::
+

Modified: trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/quickbook_output.hpp
==============================================================================
--- trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/quickbook_output.hpp (original)
+++ trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/quickbook_output.hpp 2011-01-30 16:53:02 EST (Sun, 30 Jan 2011)
@@ -78,6 +78,29 @@
         << std::endl;
 }
 
+
+void quickbook_synopsis(enumeration const& e, std::ostream& out)
+{
+ out << "``enum " << e.name;
+ bool first = true;
+ BOOST_FOREACH(enumeration_value const& value, e.enumeration_values)
+ {
+ out << (first ? " {" : ", ") << value.name;
+ if (! value.initializer.empty())
+ {
+ out << " = " << boost::trim_copy(value.initializer);
+ }
+ first = false;
+ }
+ if (! first)
+ {
+ out << "};";
+ }
+ out << "``"
+ << std::endl
+ << std::endl;
+}
+
 inline bool includes(std::string const& filename, std::string const& header)
 {
     std::string result;
@@ -177,6 +200,42 @@
 
 
 
+void quickbook_short_output(function const& f, std::ostream& out)
+{
+ BOOST_FOREACH(parameter const& p, f.parameters)
+ {
+ out << "[* " << p.fulltype << "]: ['" << p.name << "]: " << p.brief_description << std::endl << std::endl;
+ }
+ out << std::endl;
+ out << std::endl;
+
+ if (! f.return_description.empty())
+ {
+ out << "][" << std::endl;
+ out << f.return_description << std::endl;
+ out << std::endl;
+ }
+
+ out << std::endl;
+}
+
+inline std::string namespace_skipped(std::string const& name, configuration const& config)
+{
+ return config.skip_namespace.empty()
+ ? name
+ : boost::replace_all_copy(name, config.skip_namespace, "")
+ ;
+}
+
+inline std::string output_if_different(std::string const& s, std::string const& s2)
+{
+ return boost::equals(s, s2)
+ ? ""
+ : s + " "
+ ;
+}
+
+
 void quickbook_output(function const& f, configuration const& config, std::ostream& out)
 {
     // Write the parsed function
@@ -235,7 +294,7 @@
 
         if (it == f.parameters.end())
         {
- out << "[[" << tp.name << "] [" << tp.description << "] [ - ] [Must be specified]]" << std::endl;
+ out << "[[" << tp.name << "] [" << tp.brief_description << "] [ - ] [Must be specified]]" << std::endl;
         }
 
     }
@@ -249,11 +308,11 @@
         if (f.type != function_define)
         {
             out << "[" << p.fulltype
- << "] [" << (it == f.template_parameters.end() ? "" : it->description)
+ << "] [" << (it == f.template_parameters.end() ? "" : it->brief_description)
                 << "] ";
         }
         out << "[" << p.name
- << "] [" << p.description
+ << "] [" << p.brief_description
             << "]]"
             << std::endl;
     }
@@ -272,31 +331,80 @@
 }
 
 
-void quickbook_short_output(function const& f, std::ostream& out)
+void quickbook_output(enumeration const& e, configuration const& config, std::ostream& out)
 {
- BOOST_FOREACH(parameter const& p, f.parameters)
- {
- out << "[* " << p.fulltype << "]: ['" << p.name << "]: " << p.description << std::endl << std::endl;
- }
- out << std::endl;
+ out << "[section:" << to_section_name(e.name);
+ out << " " << e.name
+ << "]" << std::endl
+ << std::endl;
+
+ out << e.brief_description << std::endl;
     out << std::endl;
 
- if (! f.return_description.empty())
+ quickbook_string_with_heading_if_present("Description", e.detailed_description, out);
+
+ // Synopsis
+ quickbook_markup(e.qbk_markup, markup_before, markup_synopsis, out);
+ out << "[heading Synopsis]" << std::endl;
+ quickbook_synopsis(e, out);
+ quickbook_markup(e.qbk_markup, markup_after, markup_synopsis, out);
+
+
+ out << "[heading Values]" << std::endl
+ << std::endl;
+
+ out << "[table" << std::endl << "[";
+ out << "[Value] [Description] ]" << std::endl;
+
+ BOOST_FOREACH(enumeration_value const& value, e.enumeration_values)
     {
- out << "][" << std::endl;
- out << f.return_description << std::endl;
- out << std::endl;
+ out << "[[" << value.name
+ << "] [" << value.brief_description
+ << "]]"
+ << std::endl;
     }
+ out << "]" << std::endl
+ << std::endl
+ << std::endl;
 
+ quickbook_header(e.location, config, out);
+ quickbook_markup(e.qbk_markup, markup_any, markup_default, out);
+
+ out << std::endl;
+ out << "[endsect]" << std::endl;
     out << std::endl;
 }
 
+void quickbook_output_member(std::vector<function> const& functions,
+ function_type type,
+ std::string const& title,
+ configuration const& config, std::ostream& out)
+{
+ std::string returns = type == function_constructor ? "" : " [Returns]";
+ out << "[heading " << title << "(s)]" << std::endl
+ << "[table" << std::endl
+ << "[[Function] [Description] [Parameters] " << returns << "]" << std::endl;
+
+ BOOST_FOREACH(function const& f, functions)
+ {
+ if (f.type == type)
+ {
+ out << "[[";
+ quickbook_synopsis(f, out);
+ out << "] [" << f.brief_description << "] [";
+ quickbook_short_output(f, out);
+ out << "]]" << std::endl;
+ }
+ }
+ out << "]" << std::endl
+ << std::endl;
+}
+
+
 void quickbook_output(class_or_struct const& cos, configuration const& config, std::ostream& out)
 {
     // Skip namespace
- std::string short_name = config.skip_namespace.empty()
- ? cos.fullname
- : boost::replace_all_copy(cos.fullname, config.skip_namespace, "");
+ std::string short_name = namespace_skipped(cos.fullname, config);
 
     // Write the parsed function
     out << "[section:" << to_section_name(short_name) << " " << short_name << "]" << std::endl
@@ -311,23 +419,27 @@
     out << "[heading Synopsis]" << std::endl
         << "``";
     quickbook_template_parameter_list(cos.template_parameters, out);
- out << "class " << short_name;
+ out << "class " << short_name << std::endl;
 
     if (! cos.base_classes.empty())
     {
- out << " : ";
+ out << " : ";
         bool first = true;
         BOOST_FOREACH(base_class const& bc, cos.base_classes)
         {
- out << (first ? "" : ", ")
- << (boost::equals(bc.derivation, "private") ? "" : bc.derivation)
- << (boost::equals(bc.virtuality, "non-virtual") ? "" : bc.virtuality)
- << " " << bc.name;
+ if (! first)
+ {
+ out << std::endl << " , ";
+ }
+ out << output_if_different(bc.derivation, "private")
+ << output_if_different(bc.virtuality, "non-virtual")
+ << namespace_skipped(bc.name, config);
             first = false;
         }
+ out << std::endl;
     }
 
- out << std::endl << "{" << std::endl
+ out << "{" << std::endl
         << " // ..." << std::endl
         << "};" << std::endl
         << "``" << std::endl << std::endl;
@@ -362,7 +474,7 @@
             {
                 out << "] [" << p.default_value;
             }
- out << "] [" << p.description << "]]" << std::endl;
+ out << "] [" << p.brief_description << "]]" << std::endl;
         }
         out << "]" << std::endl
             << std::endl;
@@ -377,44 +489,12 @@
 
     if (counts[function_constructor] > 0)
     {
- out << "[heading Constructor(s)]" << std::endl
- << "[table" << std::endl
- << "[[Function] [Description] [Parameters] ]" << std::endl;
-
- BOOST_FOREACH(function const& f, cos.functions)
- {
- if (f.type == function_constructor)
- {
- out << "[[";
- quickbook_synopsis(f, out);
- out << "] [" << f.brief_description << "] [";
- quickbook_short_output(f, out);
- out << "]]" << std::endl;
- }
- }
- out << "]" << std::endl
- << std::endl;
+ quickbook_output_member(cos.functions, function_constructor, "Constructor", config, out);
     }
 
     if (counts[function_member] > 0)
     {
- out << "[heading Member Function(s)]" << std::endl
- << "[table" << std::endl
- << "[[Function] [Description] [Parameters] [Returns] ]" << std::endl;
-
- BOOST_FOREACH(function const& f, cos.functions)
- {
- if (f.type == function_member)
- {
- out << "[[";
- quickbook_synopsis(f, out);
- out << "] [" << f.brief_description << "] [";
- quickbook_short_output(f, out);
- out << "]]" << std::endl;
- }
- }
- out << "]" << std::endl
- << std::endl;
+ quickbook_output_member(cos.functions, function_member, "Member Function", config, out);
     }
 
     quickbook_header(cos.location, config, out);
@@ -423,4 +503,6 @@
     out << "[endsect]" << std::endl
         << std::endl;
 }
+
+
 #endif // QUICKBOOK_OUTPUT_HPP


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