diff --git a/doc/readme.txt b/doc/readme.txt index 63819f0a1..ac980a7fa 100644 --- a/doc/readme.txt +++ b/doc/readme.txt @@ -20,10 +20,11 @@ and that it translates from Doxygen-XML output to Quickbook (without xslt) 5) execute python file "make_qbk.py" (calling doxygen, doxygen_xml2qbk, bjam) Folders in this folder: -concept: manually written documentation QBK files, on concept +concept: manually written documentation QBK files, on concept doxy: folders and files needed for doxygen input and output html: contains generated HTML files other: older documentation (subject to update or deletion) +ref: manually written documentation QBK files, included from .hpp files reference: generated documentation QBK files (by doxygen_xml2qbk) src: examples used in documentation and tools (doxygen_xml2qbk) diff --git a/doc/ref/algorithms/area.qbk b/doc/ref/algorithms/area.qbk new file mode 100644 index 000000000..2b4237ed7 --- /dev/null +++ b/doc/ref/algorithms/area.qbk @@ -0,0 +1,26 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands. + Copyright (c) 2009-2011 Mateusz Loskot (mateusz@loskot.net) + 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) +=============================================================================/] + +[heading Behavior] +[table +[[Case] [Behavior] ] +[[__0dim__][[qbk_ret 0]]] +[[__1dim__][[qbk_ret 0]]] +[[__2dim__][[qbk_ret the area]]] +[[__cart__][[qbk_ret the area] __cs_units__]] +[[__sph__][[qbk_ret the area] __sph1__]] +[[__rev__][[qbk_ret the negative area]]] +] + +[heading Complexity] +Linear + diff --git a/doc/ref/algorithms/area_example.qbk b/doc/ref/algorithms/area_example.qbk new file mode 100644 index 000000000..1d18c385d --- /dev/null +++ b/doc/ref/algorithms/area_example.qbk @@ -0,0 +1,16 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands. + Copyright (c) 2009-2011 Mateusz Loskot (mateusz@loskot.net) + 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) +=============================================================================/] + +[heading Examples] +[area] +[area_output] + diff --git a/doc/ref/algorithms/area_example_with_strategy.qbk b/doc/ref/algorithms/area_example_with_strategy.qbk new file mode 100644 index 000000000..804bc916c --- /dev/null +++ b/doc/ref/algorithms/area_example_with_strategy.qbk @@ -0,0 +1,16 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands. + Copyright (c) 2009-2011 Mateusz Loskot (mateusz@loskot.net) + 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) +=============================================================================/] + +[heading Examples] +[area_with_strategy] +[area_with_strategy_output] + diff --git a/doc/ref/algorithms/buffer.qbk b/doc/ref/algorithms/buffer.qbk new file mode 100644 index 000000000..6ae71a426 --- /dev/null +++ b/doc/ref/algorithms/buffer.qbk @@ -0,0 +1,19 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands. + Copyright (c) 2009-2011 Mateusz Loskot (mateusz@loskot.net) + 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) +=============================================================================/] + +[heading Behavior] +[table +[[Case] [Behavior] ] +[[__box__/__box__][Returns a new rectangular box, enlarged with the specified distance. It is allowed that "geometry_out" the same object as "geometry_in"]] +] + + diff --git a/doc/ref/algorithms/centroid.qbk b/doc/ref/algorithms/centroid.qbk new file mode 100644 index 000000000..bc8bf0949 --- /dev/null +++ b/doc/ref/algorithms/centroid.qbk @@ -0,0 +1,24 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands. + Copyright (c) 2009-2011 Mateusz Loskot (mateusz@loskot.net) + 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) +=============================================================================/] + +[heading Behavior] +[table +[[Case] [Behavior] ] +[[__0dim__][Calculates centroid]] +[[__1dim__][Calculates centroid]] +[[__2dim__][Calculates centroid]] +[[__empty__][Throws a centroid_exception]] +] + + +[heading Complexity] +Linear diff --git a/doc/ref/algorithms/intersection.qbk b/doc/ref/algorithms/intersection.qbk new file mode 100644 index 000000000..df4ac5dfc --- /dev/null +++ b/doc/ref/algorithms/intersection.qbk @@ -0,0 +1,20 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands. + Copyright (c) 2009-2011 Mateusz Loskot (mateusz@loskot.net) + 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) +=============================================================================/] + +[heading Behavior] +[table +[[Case] [Behavior] ] +[[[qbk_out __point__]][Calculates intersection points of input geometries]] +[[[qbk_out __linestring__]][Calculates intersection linestrings of input geometries (NYI)]] +[[[qbk_out __polygon__]][Calculates intersection polygons input (multi)polygons and/or boxes]] +] + diff --git a/doc/ref/algorithms/intersects.qbk b/doc/ref/algorithms/intersects.qbk new file mode 100644 index 000000000..809ca5f51 --- /dev/null +++ b/doc/ref/algorithms/intersects.qbk @@ -0,0 +1,16 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands. + Copyright (c) 2009-2011 Mateusz Loskot (mateusz@loskot.net) + 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) +=============================================================================/] + +[heading Examples] +[intersects_linestring] +[intersects_linestring_output] + diff --git a/doc/ref/algorithms/length.qbk b/doc/ref/algorithms/length.qbk new file mode 100644 index 000000000..205120a1e --- /dev/null +++ b/doc/ref/algorithms/length.qbk @@ -0,0 +1,24 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands. + Copyright (c) 2009-2011 Mateusz Loskot (mateusz@loskot.net) + 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) +=============================================================================/] + +[heading Behavior] +[table +[[Case] [Behavior] ] +[[__0dim__][[qbk_ret 0]]] +[[__1dim__][[qbk_ret the length]]] +[[__2dim__][[qbk_ret 0]]] +] + + +[heading Complexity] +Linear + diff --git a/doc/ref/algorithms/length_example.qbk b/doc/ref/algorithms/length_example.qbk new file mode 100644 index 000000000..ad9047ec3 --- /dev/null +++ b/doc/ref/algorithms/length_example.qbk @@ -0,0 +1,15 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands. + Copyright (c) 2009-2011 Mateusz Loskot (mateusz@loskot.net) + 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) +=============================================================================/] + +[heading Examples] +[length_with_strategy] +[length_with_strategy_output] diff --git a/doc/ref/algorithms/length_example_with_strategy.qbk b/doc/ref/algorithms/length_example_with_strategy.qbk new file mode 100644 index 000000000..ad9047ec3 --- /dev/null +++ b/doc/ref/algorithms/length_example_with_strategy.qbk @@ -0,0 +1,15 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands. + Copyright (c) 2009-2011 Mateusz Loskot (mateusz@loskot.net) + 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) +=============================================================================/] + +[heading Examples] +[length_with_strategy] +[length_with_strategy_output] diff --git a/doc/ref/algorithms/num_geometries.qbk b/doc/ref/algorithms/num_geometries.qbk new file mode 100644 index 000000000..83787b0da --- /dev/null +++ b/doc/ref/algorithms/num_geometries.qbk @@ -0,0 +1,22 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands. + Copyright (c) 2009-2011 Mateusz Loskot (mateusz@loskot.net) + 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) +=============================================================================/] + +[heading Behavior] +[table +[[Case] [Behavior] ] +[[__single__][[qbk_ret 1]]] +[[__multi__][Returns boost::size(geometry); the input is considered as a range]] +] + + +[heading Complexity] +Constant diff --git a/doc/ref/algorithms/num_interior_rings.qbk b/doc/ref/algorithms/num_interior_rings.qbk new file mode 100644 index 000000000..c22a916e7 --- /dev/null +++ b/doc/ref/algorithms/num_interior_rings.qbk @@ -0,0 +1,23 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands. + Copyright (c) 2009-2011 Mateusz Loskot (mateusz@loskot.net) + 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) +=============================================================================/] + +[heading Behavior] +[table +[[Case] [Behavior] ] +[[__polygon__][[qbk_ret number of its interior rings]]] +[[__multi_polygon__][[qbk_ret number of the interior rings of all polygons]]] +[[__other__][[qbk_ret 0]]] +] + + +[heading Complexity] +Constant diff --git a/doc/ref/algorithms/num_points.qbk b/doc/ref/algorithms/num_points.qbk new file mode 100644 index 000000000..7764fa5d4 --- /dev/null +++ b/doc/ref/algorithms/num_points.qbk @@ -0,0 +1,25 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands. + Copyright (c) 2009-2011 Mateusz Loskot (mateusz@loskot.net) + 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) +=============================================================================/] + +[heading Behavior] +[table +[[Case] [Behavior] ] +[[__point__][[qbk_ret 1]]] +[[__segment__][[qbk_ret 2]]] +[[__box__][[qbk_ret 4]]] +[[__range__][[qbk_ret boost::size(geometry)]]] +[[__other__][[qbk_ret the sum of the number of points of its elements]]] +] + + +[heading Complexity] +Constant or Linear diff --git a/doc/ref/algorithms/perimeter.qbk b/doc/ref/algorithms/perimeter.qbk new file mode 100644 index 000000000..9c4103b03 --- /dev/null +++ b/doc/ref/algorithms/perimeter.qbk @@ -0,0 +1,23 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands. + Copyright (c) 2009-2011 Mateusz Loskot (mateusz@loskot.net) + 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) +=============================================================================/] + +[heading Behavior] +[table +[[Case] [Behavior] ] +[[__0dim__][Returns zero]] +[[__1dim__][Returns zero]] +[[__2dim__][Returns the perimeter]] +] + + +[heading Complexity] +Linear diff --git a/doc/ref/algorithms/simplify.qbk b/doc/ref/algorithms/simplify.qbk new file mode 100644 index 000000000..39b43fcc1 --- /dev/null +++ b/doc/ref/algorithms/simplify.qbk @@ -0,0 +1,18 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands. + Copyright (c) 2009-2011 Mateusz Loskot (mateusz@loskot.net) + 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) +=============================================================================/] + +[heading Examples] +[simplify] +[simplify_output] + +[heading Image(s)] +[$svg_simplify_country.png] diff --git a/doc/ref/algorithms/simplify_inserter.qbk b/doc/ref/algorithms/simplify_inserter.qbk new file mode 100644 index 000000000..148a227a5 --- /dev/null +++ b/doc/ref/algorithms/simplify_inserter.qbk @@ -0,0 +1,16 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands. + Copyright (c) 2009-2011 Mateusz Loskot (mateusz@loskot.net) + 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) +=============================================================================/] + +[heading Examples] +[simplify_inserter] +[simplify_inserter_output] + diff --git a/doc/ref/geometries/point.qbk b/doc/ref/geometries/point.qbk new file mode 100644 index 000000000..34c14eec8 --- /dev/null +++ b/doc/ref/geometries/point.qbk @@ -0,0 +1,15 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands. + Copyright (c) 2009-2011 Mateusz Loskot (mateusz@loskot.net) + 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) +=============================================================================/] + +[heading Examples] +[point] +[point_output] diff --git a/doc/ref/geometries/register/point.qbk b/doc/ref/geometries/register/point.qbk new file mode 100644 index 000000000..f337e5216 --- /dev/null +++ b/doc/ref/geometries/register/point.qbk @@ -0,0 +1,17 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2011 Barend Gehrels, Geodan, Amsterdam, the Netherlands. + Copyright (c) 2009-2011 Mateusz Loskot (mateusz@loskot.net) + 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) +=============================================================================/] + +[caution Use the macro outside any namespace] +[note A point can include a namespace] +[heading Examples] +[register_point_2d] +[register_point_2d_output] diff --git a/doc/reference/area.qbk b/doc/reference/area.qbk index 8c174f17a..770b08155 100644 --- a/doc/reference/area.qbk +++ b/doc/reference/area.qbk @@ -45,25 +45,8 @@ Or `#include ` -[heading Behavior] -[table -[[Case] [Behavior] ] -[[__0dim__][[qbk_ret 0]]] -[[__1dim__][[qbk_ret 0]]] -[[__2dim__][[qbk_ret the area]]] -[[__cart__][[qbk_ret the area] __cs_units__]] -[[__sph__][[qbk_ret the area] __sph1__]] -[[__rev__][[qbk_ret the negative area]]] -] - - -[heading Complexity] -Linear - -[heading Examples] -[area_with_strategy] -[area_with_strategy_output] - +[include ref/algorithms/area.qbk] +[include ref/algorithms/area_example_with_strategy.qbk] [endsect] @@ -102,25 +85,8 @@ Or `#include ` -[heading Behavior] -[table -[[Case] [Behavior] ] -[[__0dim__][[qbk_ret 0]]] -[[__1dim__][[qbk_ret 0]]] -[[__2dim__][[qbk_ret the area]]] -[[__cart__][[qbk_ret the area] __cs_units__]] -[[__sph__][[qbk_ret the area] __sph1__]] -[[__rev__][[qbk_ret the negative area]]] -] - - -[heading Complexity] -Linear - -[heading Examples] -[area] -[area_output] - +[include ref/algorithms/area.qbk] +[include ref/algorithms/area_example.qbk] [endsect] diff --git a/doc/reference/buffer.qbk b/doc/reference/buffer.qbk index 467df68e4..f216a5c27 100644 --- a/doc/reference/buffer.qbk +++ b/doc/reference/buffer.qbk @@ -44,13 +44,7 @@ Or `#include ` -[heading Behavior] -[table -[[Case] [Behavior] ] -[[__box__/__box__][Returns a new rectangular box, enlarged with the specified distance. It is allowed that "geometry_out" the same object as "geometry_in"]] -] - - +[include ref/algorithms/buffer.qbk] [endsect] diff --git a/doc/reference/centroid.qbk b/doc/reference/centroid.qbk index 5c3ae5094..446904b88 100644 --- a/doc/reference/centroid.qbk +++ b/doc/reference/centroid.qbk @@ -42,19 +42,7 @@ Or `#include ` -[heading Behavior] -[table -[[Case] [Behavior] ] -[[__0dim__][Calculates centroid]] -[[__1dim__][Calculates centroid]] -[[__2dim__][Calculates centroid]] -[[__empty__][Throws a centroid_exception]] -] - - -[heading Complexity] -Linear - +[include ref/algorithms/centroid.qbk] [endsect] @@ -88,6 +76,7 @@ Or `#include ` +[include ref/algorithms/centroid.qbk] [endsect] @@ -124,6 +113,7 @@ Or `#include ` +[include ref/algorithms/centroid.qbk] [endsect] @@ -148,7 +138,7 @@ Point make_centroid (Geometry const &geometry)`` [heading Returns] -The calculated centroid +The calculated centroid [heading Header] Either diff --git a/doc/reference/intersection.qbk b/doc/reference/intersection.qbk index a946113d1..19826c34e 100644 --- a/doc/reference/intersection.qbk +++ b/doc/reference/intersection.qbk @@ -21,17 +21,16 @@ Calculate the intersection of two geometries. The free function intersection calculates the spatial set theoretic intersection of two geometries. [heading Synopsis] -``template +``template bool intersection (Geometry1 const &geometry1, Geometry2 const &geometry2, GeometryOut &geometry_out)`` [heading Parameters] [table [[Type] [Concept] [Name] [Description] ] -[[Collection] [Collection of geometries (e.g. std::vector, std::deque, boost::geometry::multi*) of which the value_type (below referred to as 'GeometryOut') fulfills a Point, LineString or Polygon concept. ] [ - ] [Must be specified]] [[Geometry1 const &] [Any type fulfilling a Geometry Concept ] [geometry1] [A model of the specified concept ]] [[Geometry2 const &] [Any type fulfilling a Geometry Concept ] [geometry2] [A model of the specified concept ]] -[[GeometryOut &] [] [geometry_out] [The output geometry, either a multi_point, multi_polygon, multi_linestring, or a box (for intersection of two boxes)]] +[[GeometryOut &] [Collection of geometries (e.g. std::vector, std::deque, boost::geometry::multi*) of which the value_type fulfills a Point, LineString or Polygon concept, or it is the output geometry (e.g. for a box) ] [geometry_out] [The output geometry, either a multi_point, multi_polygon, multi_linestring, or a box (for intersection of two boxes)]] ] @@ -44,21 +43,7 @@ Or `#include ` -[heading Behavior] -[table -[[Case] [Behavior] ] -[[[qbk_out __point__]][Calculates intersection points of input geometries]] -[[[qbk_out __linestring__]][Calculates intersection linestrings of input geometries (NYI)]] -[[[qbk_out __polygon__]][Calculates intersection polygons input (multi)polygons and/or boxes]] -] - - -[heading Examples] -[intersection_ls_ls_point] -[intersection_ls_ls_point_output] -[intersection_segment] -[intersection_segment_output] - +[include ref/algorithms/intersection.qbk] [endsect] @@ -90,18 +75,7 @@ The output iterator [heading Header] `#include ` -[heading Behavior] -[table -[[Case] [Behavior] ] -[[[qbk_out __point__]][Calculates intersection points of input geometries]] -[[[qbk_out __linestring__]][Calculates intersection linestrings of input geometries (NYI)]] -[[[qbk_out __polygon__]][Calculates intersection polygons input (multi)polygons and/or boxes]] -] - - -[heading Examples] -[intersection_segment_inserter] - +[include ref/algorithms/intersection.qbk] [endsect] @@ -134,15 +108,7 @@ The output iterator [heading Header] `#include ` -[heading Behavior] -[table -[[Case] [Behavior] ] -[[[qbk_out __point__]][Calculates intersection points of input geometries]] -[[[qbk_out __linestring__]][Calculates intersection linestrings of input geometries (NYI)]] -[[[qbk_out __polygon__]][Calculates intersection polygons input (multi)polygons and/or boxes]] -] - - +[include ref/algorithms/intersection.qbk] [endsect] diff --git a/doc/reference/intersects.qbk b/doc/reference/intersects.qbk index fa9626f2d..1072ea487 100644 --- a/doc/reference/intersects.qbk +++ b/doc/reference/intersects.qbk @@ -42,10 +42,7 @@ Or `#include ` -[heading Examples] -[intersects_linestring] -[intersects_linestring_output] - +[include ref/algorithms/intersects.qbk] [endsect] @@ -77,6 +74,7 @@ Or `#include ` +[include ref/algorithms/intersects.qbk] [endsect] diff --git a/doc/reference/length.qbk b/doc/reference/length.qbk index 5f66ba492..4b9f8bbea 100644 --- a/doc/reference/length.qbk +++ b/doc/reference/length.qbk @@ -45,22 +45,8 @@ Or `#include ` -[heading Behavior] -[table -[[Case] [Behavior] ] -[[__0dim__][[qbk_ret 0]]] -[[__1dim__][[qbk_ret the length]]] -[[__2dim__][[qbk_ret 0]]] -] - - -[heading Complexity] -Linear - -[heading Examples] -[length_with_strategy] -[length_with_strategy_output] - +[include ref/algorithms/length.qbk] +[include ref/algorithms/length_example_with_strategy.qbk] [endsect] @@ -95,22 +81,8 @@ Or `#include ` -[heading Behavior] -[table -[[Case] [Behavior] ] -[[__0dim__][[qbk_ret 0]]] -[[__1dim__][[qbk_ret the length]]] -[[__2dim__][[qbk_ret 0]]] -] - - -[heading Complexity] -Linear - -[heading Examples] -[length] -[length_output] - +[include ref/algorithms/length.qbk] +[include ref/algorithms/length_example.qbk] [endsect] diff --git a/doc/reference/num_geometries.qbk b/doc/reference/num_geometries.qbk index b343c3c57..757490753 100644 --- a/doc/reference/num_geometries.qbk +++ b/doc/reference/num_geometries.qbk @@ -44,17 +44,7 @@ Or `#include ` -[heading Behavior] -[table -[[Case] [Behavior] ] -[[__single__][[qbk_ret 1]]] -[[__multi__][Returns boost::size(geometry); the input is considered as a range]] -] - - -[heading Complexity] -Constant - +[include ref/algorithms/num_geometries.qbk] [endsect] diff --git a/doc/reference/num_interior_rings.qbk b/doc/reference/num_interior_rings.qbk index 7e18f8bbf..50f4e96b1 100644 --- a/doc/reference/num_interior_rings.qbk +++ b/doc/reference/num_interior_rings.qbk @@ -44,18 +44,7 @@ Or `#include ` -[heading Behavior] -[table -[[Case] [Behavior] ] -[[__polygon__][[qbk_ret number of its interior rings]]] -[[__multi_polygon__][[qbk_ret number of the interior rings of all polygons]]] -[[__other__][[qbk_ret 0]]] -] - - -[heading Complexity] -Constant - +[include ref/algorithms/num_interior_rings.qbk] [endsect] diff --git a/doc/reference/num_points.qbk b/doc/reference/num_points.qbk index e9acddc31..fb7a5d2de 100644 --- a/doc/reference/num_points.qbk +++ b/doc/reference/num_points.qbk @@ -45,20 +45,7 @@ Or `#include ` -[heading Behavior] -[table -[[Case] [Behavior] ] -[[__point__][[qbk_ret 1]]] -[[__segment__][[qbk_ret 2]]] -[[__box__][[qbk_ret 4]]] -[[__range__][[qbk_ret boost::size(geometry)]]] -[[__other__][[qbk_ret the sum of the number of points of its elements]]] -] - - -[heading Complexity] -Constant or Linear - +[include ref/algorithms/num_points.qbk] [endsect] diff --git a/doc/reference/perimeter.qbk b/doc/reference/perimeter.qbk index da49bbcdc..42457e65d 100644 --- a/doc/reference/perimeter.qbk +++ b/doc/reference/perimeter.qbk @@ -45,18 +45,7 @@ Or `#include ` -[heading Behavior] -[table -[[Case] [Behavior] ] -[[__0dim__][Returns zero]] -[[__1dim__][Returns zero]] -[[__2dim__][Returns the perimeter]] -] - - -[heading Complexity] -Linear - +[include ref/algorithms/perimeter.qbk] [endsect] @@ -91,18 +80,7 @@ Or `#include ` -[heading Behavior] -[table -[[Case] [Behavior] ] -[[__0dim__][Returns zero]] -[[__1dim__][Returns zero]] -[[__2dim__][Returns the perimeter]] -] - - -[heading Complexity] -Linear - +[include ref/algorithms/perimeter.qbk] [endsect] diff --git a/doc/reference/point.qbk b/doc/reference/point.qbk index ef40dbbb7..c1806536e 100644 --- a/doc/reference/point.qbk +++ b/doc/reference/point.qbk @@ -90,9 +90,6 @@ Or `#include ` -[heading Examples] -[point] -[point_output] - +[include ref/geometries/point.qbk] [endsect] diff --git a/doc/reference/register.qbk b/doc/reference/register.qbk index 3eaa0f006..0be6bacfd 100644 --- a/doc/reference/register.qbk +++ b/doc/reference/register.qbk @@ -38,12 +38,7 @@ The macro BOOST_GEOMETRY_REGISTER_POINT_2D registers a two-dimensional point typ [heading Header] `#include ` -[caution Use the macro outside any namespace] -[note A point can include a namespace] -[heading Examples] -[register_point_2d] -[register_point_2d_output] - +[include ref/geometries/register/point.qbk] [endsect] diff --git a/doc/reference/simplify.qbk b/doc/reference/simplify.qbk index d4f811b03..23c327613 100644 --- a/doc/reference/simplify.qbk +++ b/doc/reference/simplify.qbk @@ -40,10 +40,7 @@ Or `#include ` -[heading Examples] -[simplify] -[simplify_output] - +[include ref/algorithms/simplify.qbk] [endsect] @@ -75,8 +72,6 @@ Or `#include ` -[heading Image(s)] -[$svg_simplify_country.png] [endsect] @@ -107,10 +102,7 @@ Or `#include ` -[heading Examples] -[simplify_inserter] -[simplify_inserter_output] - +[include ref/algorithms/simplify_inserter.qbk] [endsect] @@ -142,6 +134,7 @@ Or `#include ` +[include ref/algorithms/simplify.qbk] [endsect] diff --git a/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml2qbk.cpp b/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml2qbk.cpp index 00c4ccc39..37c050efa 100644 --- a/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml2qbk.cpp +++ b/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml2qbk.cpp @@ -114,11 +114,10 @@ struct element std::string brief_description, detailed_description; std::string location; int line; // To sort - Doxygen changes order - we change it back - std::vector examples; - std::vector behaviors; - std::vector admonitions; - std::vector images; - std::string complexity; + + // QBK-includes + // Filled with e.g.: \qbk(include, reference/myqbk.qbk} + std::vector includes; // To distinguish overloads: unary, binary etc, // Filled with: \qbk{distinguish,} @@ -353,22 +352,9 @@ static void parse_element(rapidxml::xml_node<>* node, std::string const& parent, el.location = loc; el.line = atol(get_attribute(node, "line").c_str()); } - else if (full == ".detaileddescription.para.qbk.example") + else if (full == ".detaileddescription.para.qbk.include") { - el.examples.push_back(boost::trim_copy(std::string(node->value()))); - } - else if (full == ".detaileddescription.para.qbk.admonition") - { - 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); + el.includes.push_back(boost::trim_copy(std::string(node->value()))); } else if (full == ".detaileddescription.para.qbk.distinguish") { @@ -436,11 +422,6 @@ static void parse_function(rapidxml::xml_node<>* node, std::string const& parent } else if (full == ".detaileddescription.para.image") { - std::string image = get_attribute(node, "name"); - if (! image.empty()) - { - f.images.push_back(image); - } } parse_function(node->first_node(), full, f); @@ -661,42 +642,16 @@ void quickbook_header(std::string const& location, } } -void quickbook_examples(std::vector const& examples, std::ostream& out) + +void quickbook_includes(std::vector const& includes, std::ostream& out) { - if (! examples.empty()) + BOOST_FOREACH(std::string const& inc, includes) { - out << "[heading Examples]" << std::endl; - BOOST_FOREACH(std::string const& example, examples) - { - out << "[" << example << "]" << std::endl; - } - out << std::endl; + out << "[include " << inc << "]" << std::endl; } } -void quickbook_behaviors(std::vector 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) @@ -798,30 +753,12 @@ void quickbook_output(function const& f, configuration const& config, std::ostre << std::endl; quickbook_heading_string("Returns", f.return_description, out); - //quickbook_heading_string("Model of", f.model_of, out); quickbook_header(f.location, config, out); - quickbook_behaviors(f.behaviors, out); - quickbook_heading_string("Complexity", f.complexity, out); + quickbook_includes(f.includes, out); - BOOST_FOREACH(std::string const& admonition, f.admonitions) - { - out << admonition << std::endl; - } - - quickbook_examples(f.examples, out); - - if (! f.images.empty()) - { - out << "[heading Image(s)]" << std::endl; - BOOST_FOREACH(std::string const& image, f.images) - { - out << "[$" << image << "]" << std::endl; - } - } out << std::endl; - out << "[endsect]" << std::endl; out << std::endl; } @@ -843,15 +780,6 @@ void quickbook_short_output(function const& f, std::ostream& out) out << std::endl; } - - if (! f.examples.empty()) - { - out << std::endl << std::endl << "[*Examples]" << std::endl; - BOOST_FOREACH(std::string const& example, f.examples) - { - out << "[" << example << "]" << std::endl; - } - } out << std::endl; } @@ -940,7 +868,8 @@ void quickbook_output(class_or_struct const& cos, configuration const& config, s } quickbook_header(cos.location, config, out); - quickbook_examples(cos.examples, out); + //quickbook_examples(cos.examples, out); + quickbook_includes(cos.includes, out); out << "[endsect]" << std::endl << std::endl; @@ -955,6 +884,7 @@ inline bool equal_ignore_fix(std::string const& a, std::string const& b, std::st int main(int argc, char** argv) { + // TODO: use boost::program_options if (argc < 2) { std::cerr @@ -977,21 +907,6 @@ int main(int argc, char** argv) for (std::size_t j = i + 1; j < doc.functions.size(); j++) { function& f2 = doc.functions[j]; - if (f1.name == f2.name - || equal_ignore_fix(f1.name, f2.name, "make_") - || equal_ignore_fix(f1.name, f2.name, "_inserter")) - { - // Boost.Geometry specific - // Copy behaviors if empty and function has same name - if (f1.behaviors.empty() && !f2.behaviors.empty()) - { - f1.behaviors = f2.behaviors; - } - if (f1.complexity.empty() && !f2.complexity.empty()) - { - f1.complexity = f2.complexity; - } - } if (f1.name == f2.name) { diff --git a/example/basic_examples.sln b/example/basic_examples.sln index 4b75a20d0..1c43b09d2 100644 --- a/example/basic_examples.sln +++ b/example/basic_examples.sln @@ -18,6 +18,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "07_a_graph_route_example", EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "07_b_graph_route_example", "07_b_graph_route_example.vcproj", "{940B049A-51AF-48DE-B366-11B42B98E3B3}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "04_boost_example", "04_boost_example.vcproj", "{6254AA18-1E45-4ECD-B574-D20F97F5BBA3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "08_units_example", "08_units_example.vcproj", "{3D41FD4E-88B0-4A2A-9884-D434831A236C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -60,6 +64,14 @@ Global {940B049A-51AF-48DE-B366-11B42B98E3B3}.Debug|Win32.Build.0 = Debug|Win32 {940B049A-51AF-48DE-B366-11B42B98E3B3}.Release|Win32.ActiveCfg = Release|Win32 {940B049A-51AF-48DE-B366-11B42B98E3B3}.Release|Win32.Build.0 = Release|Win32 + {6254AA18-1E45-4ECD-B574-D20F97F5BBA3}.Debug|Win32.ActiveCfg = Debug|Win32 + {6254AA18-1E45-4ECD-B574-D20F97F5BBA3}.Debug|Win32.Build.0 = Debug|Win32 + {6254AA18-1E45-4ECD-B574-D20F97F5BBA3}.Release|Win32.ActiveCfg = Release|Win32 + {6254AA18-1E45-4ECD-B574-D20F97F5BBA3}.Release|Win32.Build.0 = Release|Win32 + {3D41FD4E-88B0-4A2A-9884-D434831A236C}.Debug|Win32.ActiveCfg = Debug|Win32 + {3D41FD4E-88B0-4A2A-9884-D434831A236C}.Debug|Win32.Build.0 = Debug|Win32 + {3D41FD4E-88B0-4A2A-9884-D434831A236C}.Release|Win32.ActiveCfg = Release|Win32 + {3D41FD4E-88B0-4A2A-9884-D434831A236C}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/include/boost/geometry/algorithms/area.hpp b/include/boost/geometry/algorithms/area.hpp index f5203f96c..3b632c121 100644 --- a/include/boost/geometry/algorithms/area.hpp +++ b/include/boost/geometry/algorithms/area.hpp @@ -213,16 +213,8 @@ and Geographic as well. \param geometry \param_geometry \return \return_calc{area} -\qbk{example,area} -\qbk{example,area_output} -\qbk{behavior,__0dim__:[qbk_ret 0]} -\qbk{behavior,__1dim__:[qbk_ret 0]} -\qbk{behavior,__2dim__:[qbk_ret the area]} -\qbk{behavior,__cart__:[qbk_ret the area] __cs_units__} -\qbk{behavior,__sph__:[qbk_ret the area] __sph1__} -\qbk{behavior,__rev__:[qbk_ret the negative area]} -\qbk{complexity,Linear} -\qbk{compliance,__ogc__} +\qbk{include,ref/algorithms/area.qbk} +\qbk{include,ref/algorithms/area_example.qbk} */ template inline typename area_result::type area(Geometry const& geometry) @@ -255,8 +247,8 @@ inline typename area_result::type area(Geometry const& geometry) \return \return_calc{area} \qbk{distinguish,with strategy} -\qbk{example,area_with_strategy} -\qbk{example,area_with_strategy_output} +\qbk{include,ref/algorithms/area.qbk} +\qbk{include,ref/algorithms/area_example_with_strategy.qbk} */ template inline typename Strategy::return_type area( diff --git a/include/boost/geometry/algorithms/buffer.hpp b/include/boost/geometry/algorithms/buffer.hpp index 637cd63f2..b9925053f 100644 --- a/include/boost/geometry/algorithms/buffer.hpp +++ b/include/boost/geometry/algorithms/buffer.hpp @@ -106,7 +106,7 @@ struct buffer \param chord_length (optional) The length of the chord's in the generated arcs around points or bends \note Currently only implemented for box, the trivial case, but still useful -\qbk{behavior,__box__/__box__:Returns a new rectangular box\, enlarged with the specified distance. It is allowed that "geometry_out" the same object as "geometry_in"} +\qbk{include,ref/algorithms/buffer.qbk} */ template inline void buffer(Input const& geometry_in, Output& geometry_out, diff --git a/include/boost/geometry/algorithms/centroid.hpp b/include/boost/geometry/algorithms/centroid.hpp index d9516b989..890f35b29 100644 --- a/include/boost/geometry/algorithms/centroid.hpp +++ b/include/boost/geometry/algorithms/centroid.hpp @@ -358,6 +358,7 @@ struct centroid \param strategy \param_strategy{centroid} \qbk{distinguish,with strategy} +\qbk{include,ref/algorithms/centroid.qbk} */ template inline void centroid(Geometry const& geometry, Point& c, @@ -390,12 +391,7 @@ inline void centroid(Geometry const& geometry, Point& c, \param geometry \param_geometry \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} -\qbk{compliance,__ogc__} +\qbk{include,ref/algorithms/centroid.qbk} */ template inline void centroid(Geometry const& geometry, Point& c) @@ -423,6 +419,7 @@ inline void centroid(Geometry const& geometry, Point& c) \tparam Geometry \tparam_geometry \param geometry \param_geometry \return \return_calc{centroid} +\qbk{include,ref/algorithms/centroid.qbk} */ template inline Point make_centroid(Geometry const& geometry) @@ -446,6 +443,7 @@ inline Point make_centroid(Geometry const& geometry) \return \return_calc{centroid} \qbk{distinguish,with strategy} +\qbk{include,ref/algorithms/centroid.qbk} */ template inline Point make_centroid(Geometry const& geometry, Strategy const& strategy) diff --git a/include/boost/geometry/algorithms/intersection.hpp b/include/boost/geometry/algorithms/intersection.hpp index db2417bd7..28494c8d5 100644 --- a/include/boost/geometry/algorithms/intersection.hpp +++ b/include/boost/geometry/algorithms/intersection.hpp @@ -179,17 +179,14 @@ struct intersection_reversed \details \details_calc2{intersection, spatial set theoretic intersection}. \tparam Geometry1 \tparam_geometry \tparam Geometry2 \tparam_geometry -\tparam Collection Collection of geometries (e.g. std::vector, std::deque, boost::geometry::multi*) of which - the value_type (below referred to as 'GeometryOut') fulfills a \p_l_or_c concept. +\tparam GeometryOut Collection of geometries (e.g. std::vector, std::deque, boost::geometry::multi*) of which + the value_type fulfills a \p_l_or_c concept, or it is the output geometry (e.g. for a box) \param geometry1 \param_geometry \param geometry2 \param_geometry \param geometry_out The output geometry, either a multi_point, multi_polygon, multi_linestring, or a box (for intersection of two boxes) -\qbk{example,intersection_ls_ls_point} -\qbk{example,intersection_ls_ls_point_output} -\qbk{example,intersection_segment} -\qbk{example,intersection_segment_output} +\qbk{include,ref/algorithms/intersection.qbk} */ template < diff --git a/include/boost/geometry/algorithms/intersection_inserter.hpp b/include/boost/geometry/algorithms/intersection_inserter.hpp index 1fd20a79b..939acdfd0 100644 --- a/include/boost/geometry/algorithms/intersection_inserter.hpp +++ b/include/boost/geometry/algorithms/intersection_inserter.hpp @@ -238,7 +238,7 @@ template typename Linestring, typename Box, bool Reverse1, bool Reverse2, bool ReverseOut, typename OutputIterator, typename GeometryOut, - overlay_type OverlayType, + overlay_type OverlayType, typename Strategy > struct intersection_inserter @@ -248,7 +248,7 @@ struct intersection_inserter Linestring, Box, Reverse1, Reverse2, ReverseOut, OutputIterator, GeometryOut, - OverlayType, + OverlayType, Strategy > { @@ -267,7 +267,7 @@ template typename Segment, typename Box, bool Reverse1, bool Reverse2, bool ReverseOut, typename OutputIterator, typename GeometryOut, - overlay_type OverlayType, + overlay_type OverlayType, typename Strategy > struct intersection_inserter @@ -277,7 +277,7 @@ struct intersection_inserter Segment, Box, Reverse1, Reverse2, ReverseOut, OutputIterator, GeometryOut, - OverlayType, + OverlayType, Strategy > { @@ -302,7 +302,7 @@ template typename Geometry1, typename Geometry2, bool Reverse1, bool Reverse2, bool ReverseOut, typename OutputIterator, typename GeometryOut, - overlay_type OverlayType, + overlay_type OverlayType, typename Strategy > struct intersection_inserter_reversed @@ -318,7 +318,7 @@ struct intersection_inserter_reversed Geometry2, Geometry1, Reverse2, Reverse1, ReverseOut, OutputIterator, GeometryOut, - OverlayType, + OverlayType, Strategy >::apply(g2, g1, out, strategy); } @@ -339,7 +339,7 @@ template < typename GeometryOut, bool Reverse1, bool Reverse2, bool ReverseOut, - overlay_type OverlayType, + overlay_type OverlayType, typename Geometry1, typename Geometry2, typename OutputIterator, typename Strategy @@ -408,9 +408,7 @@ inline OutputIterator inserter(Geometry1 const& geometry1, \return \return_out \qbk{distinguish,with strategy} -\qbk{behavior,[qbk_out __point__]:Calculates intersection points of input geometries} -\qbk{behavior,[qbk_out __linestring__]:Calculates intersection linestrings of input geometries (NYI)} -\qbk{behavior,[qbk_out __polygon__]:Calculates intersection polygons input (multi)polygons and/or boxes} +\qbk{include,ref/algorithms/intersection.qbk} */ template < @@ -446,7 +444,7 @@ inline OutputIterator intersection_inserter(Geometry1 const& geometry1, \param out \param_out{intersection} \return \return_out -\qbk{example,intersection_segment_inserter} +\qbk{include,ref/algorithms/intersection.qbk} */ template < diff --git a/include/boost/geometry/algorithms/intersects.hpp b/include/boost/geometry/algorithms/intersects.hpp index ceb4a4b5f..87b2941e3 100644 --- a/include/boost/geometry/algorithms/intersects.hpp +++ b/include/boost/geometry/algorithms/intersects.hpp @@ -30,6 +30,7 @@ namespace boost { namespace geometry \return \return_check{is self-intersecting} \qbk{distinguish,one geometry} +\qbk{include,ref/algorithms/intersects.qbk} */ template inline bool intersects(Geometry const& geometry) @@ -81,8 +82,7 @@ inline bool intersects(Geometry const& geometry) \return \return_check2{intersect each other} \qbk{distinguish,two geometries} -\qbk{example,intersects_linestring} -\qbk{example,intersects_linestring_output} +\qbk{include,ref/algorithms/intersects.qbk} */ template inline bool intersects(Geometry1 const& geometry1, Geometry2 const& geometry2) diff --git a/include/boost/geometry/algorithms/length.hpp b/include/boost/geometry/algorithms/length.hpp index dd387959d..6231ae003 100644 --- a/include/boost/geometry/algorithms/length.hpp +++ b/include/boost/geometry/algorithms/length.hpp @@ -137,13 +137,8 @@ struct length \param geometry \param_geometry \return \return_calc{length} -\qbk{behavior,__0dim__:[qbk_ret 0]} -\qbk{behavior,__1dim__:[qbk_ret the length]} -\qbk{behavior,__2dim__:[qbk_ret 0]} -\qbk{complexity,Linear} -\qbk{compliance,__ogc__} -\qbk{example,length} -\qbk{example,length_output} +\qbk{include,ref/algorithms/length.qbk} +\qbk{include,ref/algorithms/length_example.qbk} */ template inline typename length_result::type length( @@ -176,8 +171,8 @@ inline typename length_result::type length( \return \return_calc{length} \qbk{distinguish,with strategy} -\qbk{example,length_with_strategy} -\qbk{example,length_with_strategy_output} +\qbk{include,ref/algorithms/length.qbk} +\qbk{include,ref/algorithms/length_example_with_strategy.qbk} */ template inline typename length_result::type length( diff --git a/include/boost/geometry/algorithms/num_points.hpp b/include/boost/geometry/algorithms/num_points.hpp index e3692e252..8eb38c9e0 100644 --- a/include/boost/geometry/algorithms/num_points.hpp +++ b/include/boost/geometry/algorithms/num_points.hpp @@ -147,13 +147,7 @@ struct num_points \param add_for_open add one for open geometries (i.e. polygon types which are not closed) \return \return_calc{number of points} -\qbk{behavior,__point__:[qbk_ret 1]} -\qbk{behavior,__segment__:[qbk_ret 2]} -\qbk{behavior,__box__:[qbk_ret 4]} -\qbk{behavior,__range__:[qbk_ret boost::size(geometry)]} -\qbk{behavior,__other__:[qbk_ret the sum of the number of points of its elements]} -\qbk{complexity,Constant or Linear} -\qbk{compliance,__ogc__} +\qbk{include,ref/algorithms/num_points.qbk} */ template inline std::size_t num_points(Geometry const& geometry, bool add_for_open = false) diff --git a/include/boost/geometry/algorithms/perimeter.hpp b/include/boost/geometry/algorithms/perimeter.hpp index 03e9315de..bf07eacdf 100644 --- a/include/boost/geometry/algorithms/perimeter.hpp +++ b/include/boost/geometry/algorithms/perimeter.hpp @@ -40,7 +40,7 @@ template struct perimeter : detail::length::range_length < - Geometry, + Geometry, Strategy, closure::value > @@ -78,10 +78,7 @@ struct perimeter \param geometry \param_geometry \return \return_calc{perimeter} -\qbk{behavior,__0dim__:Returns zero} -\qbk{behavior,__1dim__:Returns zero} -\qbk{behavior,__2dim__:Returns the perimeter} -\qbk{complexity,Linear} +\qbk{include,ref/algorithms/perimeter.qbk} */ template inline typename length_result::type perimeter( @@ -115,6 +112,7 @@ inline typename length_result::type perimeter( \return \return_calc{perimeter} \qbk{distinguish,with strategy} +\qbk{include,ref/algorithms/perimeter.qbk} */ template inline typename length_result::type perimeter( diff --git a/include/boost/geometry/algorithms/simplify.hpp b/include/boost/geometry/algorithms/simplify.hpp index 64799f6c6..3c7f7ff0f 100644 --- a/include/boost/geometry/algorithms/simplify.hpp +++ b/include/boost/geometry/algorithms/simplify.hpp @@ -286,8 +286,7 @@ inline void simplify(Geometry const& geometry, Geometry& out, \param max_distance distance (in units of input coordinates) of a vertex to other segments to be removed -\qbk{example,simplify} -\qbk{example,simplify_output} +\qbk{include,ref/algorithms/simplify.qbk} */ template inline void simplify(Geometry const& geometry, Geometry& out, @@ -323,7 +322,8 @@ inline void simplify(Geometry const& geometry, Geometry& out, might include point-distance strategy \qbk{distinguish,with strategy} - */ +\qbk{include,ref/algorithms/simplify.qbk} +*/ template inline void simplify_inserter(Geometry const& geometry, OutputIterator out, Distance const& max_distance, Strategy const& strategy) @@ -348,8 +348,7 @@ inline void simplify_inserter(Geometry const& geometry, OutputIterator out, \param max_distance distance (in units of input coordinates) of a vertex to other segments to be removed -\qbk{example,simplify_inserter} -\qbk{example,simplify_inserter_output} +\qbk{include,ref/algorithms/simplify_inserter.qbk} */ template inline void simplify_inserter(Geometry const& geometry, OutputIterator out, diff --git a/include/boost/geometry/core/interior_rings.hpp b/include/boost/geometry/core/interior_rings.hpp index f2d5f1c0b..2bd32857b 100644 --- a/include/boost/geometry/core/interior_rings.hpp +++ b/include/boost/geometry/core/interior_rings.hpp @@ -167,11 +167,7 @@ inline typename interior_return_type::type interior_rings( \param geometry \param_geometry \return \return_calc{number of interior rings} -\qbk{behavior,__polygon__:[qbk_ret number of its interior rings]} -\qbk{behavior,__multi_polygon__:[qbk_ret number of the interior rings of all polygons]} -\qbk{behavior,__other__:[qbk_ret 0]} -\qbk{compliance,__ogc__: numInteriorRing} -\qbk{complexity,Constant} +\qbk{include,ref/algorithms/num_interior_rings.qbk} \note Defined by OGC as "numInteriorRing". To be consistent with "numPoints" letter "s" is appended diff --git a/include/boost/geometry/core/num_geometries.hpp b/include/boost/geometry/core/num_geometries.hpp index 5419cf2a8..fc162b14b 100644 --- a/include/boost/geometry/core/num_geometries.hpp +++ b/include/boost/geometry/core/num_geometries.hpp @@ -50,10 +50,7 @@ struct num_geometries \param geometry \param_geometry \return \return_calc{number of geometries} -\qbk{behavior,__single__:[qbk_ret 1]} -\qbk{behavior,__multi__:Returns boost::size(geometry); the input is considered as a range} -\qbk{compliance,__ogc__} -\qbk{complexity,Constant} +\qbk{include,ref/algorithms/num_geometries.qbk} */ template inline std::size_t num_geometries(Geometry const& geometry) diff --git a/include/boost/geometry/geometries/point.hpp b/include/boost/geometry/geometries/point.hpp index 6d53747c7..b196f5860 100644 --- a/include/boost/geometry/geometries/point.hpp +++ b/include/boost/geometry/geometries/point.hpp @@ -34,8 +34,8 @@ namespace model \tparam DimensionCount number of coordinates, usually 2 or 3 \tparam CoordinateSystem coordinate system, for example cs::cartesian -\qbk{example,point} -\qbk{example,point_output} +\qbk{include,ref/geometries/point.qbk} + \details Defines a neutral point class, fulfilling the Point Concept. Library users can use this point class, or use their own point classes. diff --git a/include/boost/geometry/geometries/register/point.hpp b/include/boost/geometry/geometries/register/point.hpp index cfeba1694..352d8e153 100644 --- a/include/boost/geometry/geometries/register/point.hpp +++ b/include/boost/geometry/geometries/register/point.hpp @@ -60,10 +60,7 @@ \param Field0 \param_macro_member{\macro_x} \param Field1 \param_macro_member{\macro_y} -\qbk{example, register_point_2d} -\qbk{example, register_point_2d_output} -\qbk{admonition, [caution Use the macro outside any namespace]} -\qbk{admonition, [note A point can include a namespace]} +\qbk{include,ref/geometries/register/point.qbk} */ #define BOOST_GEOMETRY_REGISTER_POINT_2D(Point, CoordinateType, CoordinateSystem, Field0, Field1) \ namespace boost { namespace geometry { namespace traits { \