From c8bc3cc1e182690852630f76d2029b70fba59ced Mon Sep 17 00:00:00 2001 From: Barend Gehrels Date: Sun, 12 Feb 2012 18:01:22 +0000 Subject: [PATCH] Boost.Geometry merge doc updates [SVN r77001] --- doc/compiling.qbk | 6 ++-- doc/concept/linestring.qbk | 12 ++++++- doc/concept/polygon.qbk | 2 +- doc/concept/ring.qbk | 1 + doc/generated/append_status.qbk | 5 +-- doc/geometry.qbk | 34 ++++++++++++++++--- doc/html/index.html | 18 +++++----- doc/introduction.qbk | 5 ++- doc/reference/algorithms/append.qbk | 6 ++++ doc/reference/algorithms/area.qbk | 4 +++ doc/reference/algorithms/buffer.qbk | 7 ++++ doc/reference/algorithms/centroid.qbk | 4 +++ doc/reference/algorithms/clear.qbk | 4 +++ .../algorithms/comparable_distance.qbk | 4 +++ doc/reference/algorithms/convert.qbk | 9 ++--- doc/reference/algorithms/convex_hull.qbk | 4 +++ doc/reference/algorithms/correct.qbk | 7 ++-- doc/reference/algorithms/covered_by.qbk | 13 ++++--- doc/reference/algorithms/difference.qbk | 4 +++ doc/reference/algorithms/disjoint.qbk | 15 ++++++++ doc/reference/algorithms/distance.qbk | 4 +++ doc/reference/algorithms/envelope.qbk | 15 ++++++++ doc/reference/algorithms/equals.qbk | 4 +++ doc/reference/algorithms/expand.qbk | 5 ++- doc/reference/algorithms/for_each_point.qbk | 16 +++++++++ doc/reference/algorithms/for_each_segment.qbk | 16 +++++++++ doc/reference/algorithms/intersection.qbk | 4 +++ doc/reference/algorithms/intersects.qbk | 5 +++ doc/reference/algorithms/length.qbk | 4 +++ doc/reference/algorithms/num_geometries.qbk | 4 +++ .../algorithms/num_interior_rings.qbk | 5 +++ doc/reference/algorithms/num_points.qbk | 6 ++++ doc/reference/algorithms/overlaps.qbk | 15 ++++++++ doc/reference/algorithms/perimeter.qbk | 8 +++++ doc/reference/algorithms/reverse.qbk | 6 ++-- doc/reference/algorithms/simplify.qbk | 17 ++++++++++ doc/reference/algorithms/sym_difference.qbk | 4 +++ doc/reference/algorithms/transform.qbk | 4 +++ doc/reference/algorithms/union.qbk | 5 +++ doc/reference/algorithms/unique.qbk | 6 ++-- doc/reference/algorithms/within.qbk | 5 +++ doc/reference/geometries/point.qbk | 3 ++ .../geometries/point_assign_warning.qbk | 16 +++++++++ doc/release_notes.qbk | 9 +++-- doc/src/examples/algorithms/append.cpp | 4 +-- .../boost/geometry/algorithms/disjoint.hpp | 4 ++- .../boost/geometry/algorithms/envelope.hpp | 10 ++---- .../boost/geometry/algorithms/for_each.hpp | 5 +++ .../boost/geometry/algorithms/intersects.hpp | 1 + .../boost/geometry/algorithms/overlaps.hpp | 4 ++- .../boost/geometry/geometries/point_xy.hpp | 3 ++ 51 files changed, 327 insertions(+), 54 deletions(-) create mode 100644 doc/reference/algorithms/disjoint.qbk create mode 100644 doc/reference/algorithms/envelope.qbk create mode 100644 doc/reference/algorithms/for_each_point.qbk create mode 100644 doc/reference/algorithms/for_each_segment.qbk create mode 100644 doc/reference/algorithms/overlaps.qbk create mode 100644 doc/reference/geometries/point_assign_warning.qbk diff --git a/doc/compiling.qbk b/doc/compiling.qbk index f1084deca..f549fabd0 100644 --- a/doc/compiling.qbk +++ b/doc/compiling.qbk @@ -39,9 +39,11 @@ compilers: * 9.0 (__msvc__ 2008) [/reported by Trunk report May 8, 2011] * 8.0 (__msvc__ 2005) [/reported by Trunk report May 8, 2011] * gcc + * gcc 4.7.0 [/reported by Trunk report February 12, 2012] + * gcc 4.6.2 [/reported by Trunk report February 12, 2012] * gcc 4.6.1 [/reported by Trunk report May 8, 2011] - * gcc 4.6.0 (including C++0x) [/reported by Trunk report May 8, 2011] - * gcc 4.5.2 (including C++0x) [/reported by Trunk report May 8, 2011] + * gcc 4.6.0 [/reported by Trunk report May 8, 2011] + * gcc 4.5.2 [/reported by Trunk report May 8, 2011] * gcc 4.4.0 [/reported by Trunk report May 8, 2011] * gcc 4.3.4 [/reported by Trunk report March 26, 2011] * gcc 4.2.1 [/reported by Trunk report May 8, 2011] diff --git a/doc/concept/linestring.qbk b/doc/concept/linestring.qbk index 7d9902bc5..0cf21b723 100644 --- a/doc/concept/linestring.qbk +++ b/doc/concept/linestring.qbk @@ -16,7 +16,7 @@ [concept Linestring..linestring] A linestring is ['a Curve with linear interpolation between Points]. -([@http://portal.opengeospatial.org/files/?artifact_id=25355 opengeospatial]). +(__ogc_sf__). [heading Concept Definition] @@ -27,9 +27,19 @@ The Linestring Concept is defined as following: * The type defined by the metafunction `range_value<...>::type` must fulfill the [link geometry.reference.concepts.concept_point Point Concept] +[heading Rules] + +Besides the Concepts, which are checks on compile-time, there are rules that +valid linestrings must fulfill. Most algorithms work on any linestring, so either +self-crossing or not. However, for correct results using the overlay algorithms +(intersection and difference algorithms in combination with a polygon) +self-intersections can disturb the process and result in incorrect results. + [heading Available Models] * [link geometry.reference.models.model_linestring model::linestring] * a std::vector (requires registration) * a std::deque (requires registration) +[see_boost_range_sample Linestring] + [endsect] diff --git a/doc/concept/polygon.qbk b/doc/concept/polygon.qbk index 9de46d824..14f040ce8 100644 --- a/doc/concept/polygon.qbk +++ b/doc/concept/polygon.qbk @@ -16,7 +16,7 @@ [concept Polygon..polygon] A polygon is ['A polygon is a planar surface defined by one exterior boundary and zero or more interior boundaries] -([@http://portal.opengeospatial.org/files/?artifact_id=25355 opengeospatial]). +(__ogc_sf__). So the definition of a Boost.Geometry polygon differs a bit from e.g. Wiki, where a polygon does not have holes. A polygon of Boost.Geometry is a polygon with or without holes. diff --git a/doc/concept/ring.qbk b/doc/concept/ring.qbk index 63c121d34..67bc2d0cb 100644 --- a/doc/concept/ring.qbk +++ b/doc/concept/ring.qbk @@ -41,5 +41,6 @@ on the rules a polygon (and also a ring) must fulfill. * a std::vector (requires `#include boost/geometry/geometries/adapted/std_as_ring.hpp>`) * a std::deque (requires `#include boost/geometry/geometries/adapted/std_as_ring.hpp>`) +[see_boost_range_sample Ring] [endsect] diff --git a/doc/generated/append_status.qbk b/doc/generated/append_status.qbk index ba6925202..51329f887 100644 --- a/doc/generated/append_status.qbk +++ b/doc/generated/append_status.qbk @@ -1,3 +1,4 @@ +[/NOTE: adapted manually, multi-linestring/multi-polygon do compile but not run!] [heading Supported geometries] [table [[ ][Point][Range]] @@ -8,6 +9,6 @@ [[Ring][ [$img/ok.png] ][ [$img/ok.png] ]] [[Polygon][ [$img/ok.png] ][ [$img/ok.png] ]] [[MultiPoint][ [$img/ok.png] ][ [$img/ok.png] ]] -[[MultiLinestring][ [$img/ok.png] ][ [$img/ok.png] ]] -[[MultiPolygon][ [$img/ok.png] ][ [$img/ok.png] ]] +[[MultiLinestring][ [$img/nyi.png] ][ [$img/nyi.png] ]] +[[MultiPolygon][ [$img/nyi.png] ][ [$img/nyi.png] ]] ] diff --git a/doc/geometry.qbk b/doc/geometry.qbk index b49227265..8297e3de7 100644 --- a/doc/geometry.qbk +++ b/doc/geometry.qbk @@ -12,7 +12,6 @@ [library Geometry [quickbook 1.5] - [version 1.49] [authors [Gehrels, Barend], [Lalande, Bruno], [Loskot, Mateusz]] [copyright 2009-2012 Barend Gehrels, Bruno Lalande, Mateusz Loskot] [purpose Documentation of Boost.Geometry library] @@ -61,10 +60,6 @@ [template qbk_ret[what] Returns [what]] [template qbk_out[what] GeometryOut is a [what]] -[template concept[name type] The [name] Concept describes the requirements for a [type] type. -All algorithms in Boost.Geometry will check any geometry arguments against the concept requirements.] - - [def __boost__ Boost] [def __boost_geometry__ Boost.Geometry] [def __boost_array__ Boost.Array] @@ -78,6 +73,35 @@ All algorithms in Boost.Geometry will check any geometry arguments against the c [def __ttmath__ [@http://www.ttmath.org/ ttmath]] [def __ogc__ [@http://www.opengeospatial.org OGC]] +[def __ogc_sf__ [@http://www.opengeospatial.org/standards/sfa OGC Simple Feature Specification]] + +[/Templates] +[template concept[name type] +The [name] Concept describes the requirements for a [type] type. +All algorithms in Boost.Geometry will check any geometry arguments against the concept requirements. +] + +[template heading_conformance_no_ogc[function] +[heading Conformance] +The function [function] is not defined by OGC. +] + +[template heading_conformance_ogc[function ogc_function] +[heading Conformance] +The function [function] implements function [ogc_function] from the __ogc_sf__. +] + +[template conformance_std[function std_function] +The function [function] conforms to the [std_function] of the C++ std-library. +] + +[template see_boost_range_sample[concept] +[note See also the sample in the [@../../../range/doc/html/range/reference/extending/method_2.html Boost.Range documentation] + showing how a type can be adapted to a Boost.Range to fulfill the concept of a [concept] +] +] + + [heading Contributions] Boost.Geometry contains contributions by: diff --git a/doc/html/index.html b/doc/html/index.html index 09c4188c7..7ed18f667 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -1,10 +1,10 @@ -Chapter 1. Geometry 1.49 +Chapter 1. Geometry - + @@ -21,7 +21,7 @@

-Chapter 1. Geometry 1.49

+Chapter 1. Geometry

Barend Gehrels

@@ -34,7 +34,7 @@
-

+

Distributed under 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)

@@ -89,24 +89,24 @@ Alfredo Correa (adaption of Boost.Array)
  • - Adam Wulkiewicz (spatial indexes) [1] + Adam Wulkiewicz (spatial indexes) [1]
  • - Federico Fernández (spatial indexes) [2] + Federico Fernández (spatial indexes) [2]


  • -

    [1] +

    [1] Currently an extension

    -

    [2] +

    [2] Currently an extension

    - +

    Last revised: February 12, 2012 at 12:12:26 GMT

    Last revised: February 12, 2012 at 17:59:04 GMT


    diff --git a/doc/introduction.qbk b/doc/introduction.qbk index d368a39d7..dfac965d5 100644 --- a/doc/introduction.qbk +++ b/doc/introduction.qbk @@ -38,10 +38,9 @@ The library follows existing conventions: * conventions from boost * conventions from the std library * conventions and names from one of the __ogc__ standards on geometry and, more - specificly, from the - [@http://portal.opengeospatial.org/files/?artifact_id=25355 Simple Feature Specification] + specificly, from the __ogc_sf__ -The library was released with Boost 1.47.0 and from that point on it is +The library was first released with Boost 1.47.0 and from that point on it is officially part of the Boost C++ Libraries. Latest stable version of the source code is included in the diff --git a/doc/reference/algorithms/append.qbk b/doc/reference/algorithms/append.qbk index d69335d72..3582dfbf4 100644 --- a/doc/reference/algorithms/append.qbk +++ b/doc/reference/algorithms/append.qbk @@ -10,6 +10,12 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ append] + +[heading_conformance_no_ogc __this_function__] + +[include generated/append_status.qbk] + [heading Behavior] [table [[Case] [Behavior] ] diff --git a/doc/reference/algorithms/area.qbk b/doc/reference/algorithms/area.qbk index 225dbe05f..e459ee5da 100644 --- a/doc/reference/algorithms/area.qbk +++ b/doc/reference/algorithms/area.qbk @@ -10,6 +10,10 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ area] + +[heading_conformance_ogc __this_function__..Area] + [heading Behavior] [table [[Case] [Behavior] ] diff --git a/doc/reference/algorithms/buffer.qbk b/doc/reference/algorithms/buffer.qbk index f4fdc639f..c798daaab 100644 --- a/doc/reference/algorithms/buffer.qbk +++ b/doc/reference/algorithms/buffer.qbk @@ -10,6 +10,13 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ buffer] + +[heading_conformance_ogc __this_function__..Buffer] +[note The current implemetation only enlarges a box, which is not defined by OGC. + A next version of the library will contain a more complete implementation +] + [heading Behavior] [table [[Case] [Behavior] ] diff --git a/doc/reference/algorithms/centroid.qbk b/doc/reference/algorithms/centroid.qbk index 2b4cbf754..12152cb46 100644 --- a/doc/reference/algorithms/centroid.qbk +++ b/doc/reference/algorithms/centroid.qbk @@ -10,6 +10,10 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ centroid] + +[heading_conformance_ogc __this_function__..Centroid] + [heading Behavior] [table [[Case] [Behavior] ] diff --git a/doc/reference/algorithms/clear.qbk b/doc/reference/algorithms/clear.qbk index 5b037500e..969d6df84 100644 --- a/doc/reference/algorithms/clear.qbk +++ b/doc/reference/algorithms/clear.qbk @@ -11,6 +11,10 @@ =============================================================================/] [def __is_cleared__ is cleared] +[def __this_function__ clear] + +[heading_conformance_no_ogc __this_function__] +[conformance_std __this_function__..__this_function__() method] [include generated/clear_status.qbk] diff --git a/doc/reference/algorithms/comparable_distance.qbk b/doc/reference/algorithms/comparable_distance.qbk index eec25f500..99a6b372d 100644 --- a/doc/reference/algorithms/comparable_distance.qbk +++ b/doc/reference/algorithms/comparable_distance.qbk @@ -10,6 +10,10 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ comparable_distance] + +[heading_conformance_no_ogc __this_function__] + [heading Behaviour] There is no (not yet) version with a strategy. diff --git a/doc/reference/algorithms/convert.qbk b/doc/reference/algorithms/convert.qbk index 981fb288e..f5704cc0f 100644 --- a/doc/reference/algorithms/convert.qbk +++ b/doc/reference/algorithms/convert.qbk @@ -10,9 +10,9 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] -[note convert is not defined within OGC or ISO] -[note convert is modelled as source -> target - (where assign is modelled as target := source)] +[def __this_function__ convert] + +[heading_conformance_no_ogc __this_function__] [include generated/convert_status.qbk] [note In this status matrix above: columns are source types @@ -29,4 +29,5 @@ Linear [heading See also] * [link geometry.reference.algorithms.assign.assign assign] - +[note convert is modelled as source -> target + (where assign is modelled as target := source)] diff --git a/doc/reference/algorithms/convex_hull.qbk b/doc/reference/algorithms/convex_hull.qbk index df428d95c..492c99a5a 100644 --- a/doc/reference/algorithms/convex_hull.qbk +++ b/doc/reference/algorithms/convex_hull.qbk @@ -10,6 +10,10 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ convex_hull] + +[heading_conformance_ogc __this_function__..ConvexHull()] + [include generated/convex_hull_status.qbk] [heading Complexity] diff --git a/doc/reference/algorithms/correct.qbk b/doc/reference/algorithms/correct.qbk index 6b547b933..cb3f6d902 100644 --- a/doc/reference/algorithms/correct.qbk +++ b/doc/reference/algorithms/correct.qbk @@ -11,6 +11,11 @@ =============================================================================/] [def __corrected__ is corrected] +[def __this_function__ correct] + +[heading_conformance_no_ogc __this_function__] + +[include generated/correct_status.qbk] [heading Behavior] [table @@ -22,8 +27,6 @@ [[__other__][__does_nothing__]] ] -[tip Correct is not defined within OGC or ISO] - [heading Complexity] Linear diff --git a/doc/reference/algorithms/covered_by.qbk b/doc/reference/algorithms/covered_by.qbk index 461aee8e2..0fb187f09 100644 --- a/doc/reference/algorithms/covered_by.qbk +++ b/doc/reference/algorithms/covered_by.qbk @@ -10,17 +10,20 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ covered_by] + +[heading_conformance_no_ogc __this_function__] +[note Both PostGIS and Oracle contain an algorithm with the same name and the + same functionality. + See the [@http://www.postgis.org/docs/ST_CoveredBy.html PostGIS documentation]. +] + [include generated/covered_by_status.qbk] [note In this status matrix above: columns are types of first parameter and rows are types of second parameter. So a point can be checked to be covered by a polygon, but not vice versa. ] -[note convert is not defined within OGC or ISO. However, both PostGIS - and Oracle contain an algorithm with the same name and the same functionality. - See the [@http://www.postgis.org/docs/ST_CoveredBy.html PostGIS documentation]. -] - [heading Complexity] Linear diff --git a/doc/reference/algorithms/difference.qbk b/doc/reference/algorithms/difference.qbk index e49e8332f..3aaf54efd 100644 --- a/doc/reference/algorithms/difference.qbk +++ b/doc/reference/algorithms/difference.qbk @@ -8,6 +8,10 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ difference] + +[heading_conformance_ogc __this_function__..Difference] + [include reference/algorithms/difference_behavior.qbk] [include reference/algorithms/geometry_rules.qbk] diff --git a/doc/reference/algorithms/disjoint.qbk b/doc/reference/algorithms/disjoint.qbk new file mode 100644 index 000000000..6f5c8ef49 --- /dev/null +++ b/doc/reference/algorithms/disjoint.qbk @@ -0,0 +1,15 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands. + Copyright (c) 2009-2012 Mateusz Loskot, London, UK. + Copyright (c) 2009-2012 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) +=============================================================================/] + +[def __this_function__ disjoint] + +[heading_conformance_ogc __this_function__..Disjoint] diff --git a/doc/reference/algorithms/distance.qbk b/doc/reference/algorithms/distance.qbk index dbb7592a4..d9c448cfe 100644 --- a/doc/reference/algorithms/distance.qbk +++ b/doc/reference/algorithms/distance.qbk @@ -10,6 +10,10 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ distance] + +[heading_conformance_ogc __this_function__..Distance] + [include generated/distance_status.qbk] [heading Complexity] diff --git a/doc/reference/algorithms/envelope.qbk b/doc/reference/algorithms/envelope.qbk new file mode 100644 index 000000000..97209a394 --- /dev/null +++ b/doc/reference/algorithms/envelope.qbk @@ -0,0 +1,15 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands. + Copyright (c) 2009-2012 Mateusz Loskot, London, UK. + Copyright (c) 2009-2012 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) +=============================================================================/] + +[def __this_function__ envelope] + +[heading_conformance_ogc __this_function__..Envelope] diff --git a/doc/reference/algorithms/equals.qbk b/doc/reference/algorithms/equals.qbk index c5fd87baf..b0159a90a 100644 --- a/doc/reference/algorithms/equals.qbk +++ b/doc/reference/algorithms/equals.qbk @@ -10,6 +10,10 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ equals] + +[heading_conformance_ogc __this_function__..Equals] + [include generated/equals_status.qbk] [heading Complexity] diff --git a/doc/reference/algorithms/expand.qbk b/doc/reference/algorithms/expand.qbk index ce6fdaa2d..0b1c14bd7 100644 --- a/doc/reference/algorithms/expand.qbk +++ b/doc/reference/algorithms/expand.qbk @@ -10,8 +10,12 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ expand] [def __apply_expand__ Box is expanded to include the specified] +[heading_conformance_no_ogc __this_function__] + + [heading Behavior] [table [[Case] [Behavior] ] @@ -20,7 +24,6 @@ [[__box__ / __other__][__nyiversion__]] ] -[tip Expand is not defined within OGC or ISO] [note To use expand with another geometry type then specified, use expand(make_envelope(geometry)] [heading Complexity] diff --git a/doc/reference/algorithms/for_each_point.qbk b/doc/reference/algorithms/for_each_point.qbk new file mode 100644 index 000000000..a48becbda --- /dev/null +++ b/doc/reference/algorithms/for_each_point.qbk @@ -0,0 +1,16 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands. + Copyright (c) 2009-2012 Mateusz Loskot, London, UK. + Copyright (c) 2009-2012 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) +=============================================================================/] + +[def __this_function__ for_each_point] + +[heading_conformance_no_ogc __this_function__] +[conformance_std __this_function__..std::for_each function] diff --git a/doc/reference/algorithms/for_each_segment.qbk b/doc/reference/algorithms/for_each_segment.qbk new file mode 100644 index 000000000..fbb9fc621 --- /dev/null +++ b/doc/reference/algorithms/for_each_segment.qbk @@ -0,0 +1,16 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands. + Copyright (c) 2009-2012 Mateusz Loskot, London, UK. + Copyright (c) 2009-2012 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) +=============================================================================/] + +[def __this_function__ for_each_segment] + +[heading_conformance_no_ogc __this_function__] +[conformance_std __this_function__..std::for_each function] diff --git a/doc/reference/algorithms/intersection.qbk b/doc/reference/algorithms/intersection.qbk index 88ead046e..a4d2c9fbf 100644 --- a/doc/reference/algorithms/intersection.qbk +++ b/doc/reference/algorithms/intersection.qbk @@ -10,6 +10,10 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ intersection] + +[heading_conformance_ogc __this_function__..Intersection] + [heading Behavior] [table [[Case] [Behavior] ] diff --git a/doc/reference/algorithms/intersects.qbk b/doc/reference/algorithms/intersects.qbk index 7717f43b9..49aea2322 100644 --- a/doc/reference/algorithms/intersects.qbk +++ b/doc/reference/algorithms/intersects.qbk @@ -10,6 +10,11 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ intersects] + +[heading_conformance_ogc __this_function__..Intersects] +[? __one_parameter__ The version with one parameter is additional and not described in the OGC standard] + [heading Examples] [intersects_linestring] [intersects_linestring_output] diff --git a/doc/reference/algorithms/length.qbk b/doc/reference/algorithms/length.qbk index 98fbc5619..c349f56e4 100644 --- a/doc/reference/algorithms/length.qbk +++ b/doc/reference/algorithms/length.qbk @@ -10,6 +10,10 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ length] + +[heading_conformance_ogc __this_function__..Length] + [heading Behavior] [table [[Case] [Behavior] ] diff --git a/doc/reference/algorithms/num_geometries.qbk b/doc/reference/algorithms/num_geometries.qbk index 7c7235753..998d0b155 100644 --- a/doc/reference/algorithms/num_geometries.qbk +++ b/doc/reference/algorithms/num_geometries.qbk @@ -10,6 +10,10 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ num_geometries] + +[heading_conformance_ogc __this_function__..NumGeometries] + [heading Behavior] [table [[Case] [Behavior] ] diff --git a/doc/reference/algorithms/num_interior_rings.qbk b/doc/reference/algorithms/num_interior_rings.qbk index 8fdc0b08b..abbe59e45 100644 --- a/doc/reference/algorithms/num_interior_rings.qbk +++ b/doc/reference/algorithms/num_interior_rings.qbk @@ -10,6 +10,11 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ num_interior_ring] + +[heading_conformance_ogc __this_function__..NumInteriorRing] +[note __boost_geometry__ adds an "s"] + [heading Behavior] [table [[Case] [Behavior] ] diff --git a/doc/reference/algorithms/num_points.qbk b/doc/reference/algorithms/num_points.qbk index 54865df28..b59ea1b09 100644 --- a/doc/reference/algorithms/num_points.qbk +++ b/doc/reference/algorithms/num_points.qbk @@ -10,6 +10,12 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ num_points] + +[heading_conformance_ogc __this_function__..NumPoints] +[note __this_function__ can be called for any geometry and not just linestrings +(as the standard describes)] + [heading Behavior] [table [[Case] [Behavior] ] diff --git a/doc/reference/algorithms/overlaps.qbk b/doc/reference/algorithms/overlaps.qbk new file mode 100644 index 000000000..9f1a75265 --- /dev/null +++ b/doc/reference/algorithms/overlaps.qbk @@ -0,0 +1,15 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands. + Copyright (c) 2009-2012 Mateusz Loskot, London, UK. + Copyright (c) 2009-2012 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) +=============================================================================/] + +[def __this_function__ overlaps] + +[heading_conformance_ogc __this_function__..Overlaps] diff --git a/doc/reference/algorithms/perimeter.qbk b/doc/reference/algorithms/perimeter.qbk index 69bace93f..66d924542 100644 --- a/doc/reference/algorithms/perimeter.qbk +++ b/doc/reference/algorithms/perimeter.qbk @@ -10,6 +10,14 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ perimeter] + +[heading_conformance_no_ogc __this_function__] +[note PostGIS contains an algorithm with the same name and the + same functionality. + See the [@http://www.postgis.org/docs/ST_Perimeter.html PostGIS documentation]. +] + [heading Behavior] [table [[Case] [Behavior] ] diff --git a/doc/reference/algorithms/reverse.qbk b/doc/reference/algorithms/reverse.qbk index 9221d343d..282964e29 100644 --- a/doc/reference/algorithms/reverse.qbk +++ b/doc/reference/algorithms/reverse.qbk @@ -10,6 +10,10 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ reverse] + +[heading_conformance_no_ogc __this_function__] +[conformance_std __this_function__..std::__this_function__ function] [heading Behavior] [table @@ -27,8 +31,6 @@ [note The reverse of a (multi)polygon or ring might make a valid geometry invalid because the (counter)clockwise orientation reverses.] -[tip Conforms to std::reverse functionality. It is not defined within OGC or ISO] - [heading Complexity] Linear diff --git a/doc/reference/algorithms/simplify.qbk b/doc/reference/algorithms/simplify.qbk index ed72d50eb..9d0b718bd 100644 --- a/doc/reference/algorithms/simplify.qbk +++ b/doc/reference/algorithms/simplify.qbk @@ -10,6 +10,23 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ simplify] + +[heading_conformance_no_ogc __this_function__] +[note PostGIS contains an algorithm with the same name and the + same functionality. + See the [@http://www.postgis.org/docs/ST_Simplify.html PostGIS documentation]. +] +[note SQL Server contains an algorithm Reduce() with the same functionality. + See the [@http://msdn.microsoft.com/en-us/library/bb933814.aspx MSDN documentation]. +] + +[heading Behavior] +Simplification is done using [@http://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm Douglas-Peucker] (if the default strategy is used). +[note Geometries might become invalid by using simplify. The simplification +process might create self-intersections. +] + [heading Examples] [simplify] [simplify_output] diff --git a/doc/reference/algorithms/sym_difference.qbk b/doc/reference/algorithms/sym_difference.qbk index 9aee1e128..549f077ae 100644 --- a/doc/reference/algorithms/sym_difference.qbk +++ b/doc/reference/algorithms/sym_difference.qbk @@ -10,6 +10,10 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ sym_difference] + +[heading_conformance_ogc __this_function__..SymDifference] + [include reference/algorithms/difference_behavior.qbk] [include reference/algorithms/geometry_rules.qbk] diff --git a/doc/reference/algorithms/transform.qbk b/doc/reference/algorithms/transform.qbk index 470f170cb..6b404b117 100644 --- a/doc/reference/algorithms/transform.qbk +++ b/doc/reference/algorithms/transform.qbk @@ -10,6 +10,10 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ transform] + +[heading_conformance_no_ogc __this_function__] + [heading Behavior] [table [[Case] [Behavior] ] diff --git a/doc/reference/algorithms/union.qbk b/doc/reference/algorithms/union.qbk index 9873d3a67..0a7a1099a 100644 --- a/doc/reference/algorithms/union.qbk +++ b/doc/reference/algorithms/union.qbk @@ -10,6 +10,11 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ union] + +[heading_conformance_ogc __this_function__..Union] +[note __boost_geometry__ adds an underscore to avoid using the `union` keyword] + [heading Behavior] [table [[Case] [Behavior] ] diff --git a/doc/reference/algorithms/unique.qbk b/doc/reference/algorithms/unique.qbk index be6e03da9..92144dbf1 100644 --- a/doc/reference/algorithms/unique.qbk +++ b/doc/reference/algorithms/unique.qbk @@ -11,6 +11,10 @@ =============================================================================/] [def __applies_unique__ Removes all consecutive duplicate points] +[def __this_function__ unique] + +[heading_conformance_no_ogc __this_function__] +[conformance_std __this_function__..std::__this_function__ function] [heading Behavior] [table @@ -26,8 +30,6 @@ [[__multi_polygon__][__applies_unique__ in all contained polygons (all rings)]] ] -[tip Conforms to std::unique functionality. It is not defined within OGC or ISO] - [heading Complexity] Linear diff --git a/doc/reference/algorithms/within.qbk b/doc/reference/algorithms/within.qbk index 4eea2c448..db63e07e3 100644 --- a/doc/reference/algorithms/within.qbk +++ b/doc/reference/algorithms/within.qbk @@ -10,6 +10,11 @@ http://www.boost.org/LICENSE_1_0.txt) =============================================================================/] +[def __this_function__ within] + +[heading_conformance_ogc __this_function__..Within] +[note OGC defines within as completely within and not on the border. See the notes for within / on the border] + [include generated/within_status.qbk] [note In this status matrix above: columns are types of first parameter and rows are types of second parameter. So a point can be checked to be diff --git a/doc/reference/geometries/point.qbk b/doc/reference/geometries/point.qbk index d168fd517..0d756a2b7 100644 --- a/doc/reference/geometries/point.qbk +++ b/doc/reference/geometries/point.qbk @@ -13,3 +13,6 @@ [heading Examples] [point] [point_output] + +[include reference/geometries/point_assign_warning.qbk] + diff --git a/doc/reference/geometries/point_assign_warning.qbk b/doc/reference/geometries/point_assign_warning.qbk new file mode 100644 index 000000000..0ab0bc6c7 --- /dev/null +++ b/doc/reference/geometries/point_assign_warning.qbk @@ -0,0 +1,16 @@ +[/============================================================================ + Boost.Geometry (aka GGL, Generic Geometry Library) + + Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands. + Copyright (c) 2009-2012 Mateusz Loskot, London, UK. + Copyright (c) 2009-2012 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 Notes] +[note Coordinates are not initialized. If the constructor with parameters is not +called and points are not assigned using `set` or `assign` then the coordinate +values will contain garbage] diff --git a/doc/release_notes.qbk b/doc/release_notes.qbk index 238569214..752616e69 100644 --- a/doc/release_notes.qbk +++ b/doc/release_notes.qbk @@ -23,13 +23,14 @@ [*Bugfixes] * bugfix: distance for multi-geometries ignored specified distance strategy. Fixed -* bugfix in difference for polygon/multi_polygon (reported 2011/10/24 on GGL-list) +* bugfix: difference for polygon/multi_polygon (reported 2011/10/24 on GGL-list) * bugfix: raise exception for calculation of distances of multi-geometrie(s) where one of them is empty * bugfix: multi DSV did not correctly use settings, fixed * bugfix: self-intersections could sometimes be missed (introduced in 1.48), fixed * bugfix: convex hull crashed on empty range (e.g. empty multi point), fixed * bugfix: area/centroid/side/intersection/distance did not work for "int" type filled with large (but not overflowing) integers. Fixed. * bugfix: disjoint/intersect did not work for degenerate linestrings. Fixed. +* bugfix: covered_by did not compile for a ring. Fixed. [*Solved tickets] @@ -43,18 +44,20 @@ * support for line/polygon intersections and differences * support for convert of segment/box of different point types * support for append for multi point -* scalar functions (distance, area, length, perimeter) now throw an empty_input_exception on empty input +* the scalar function distance now throws an empty_input_exception on empty input [*Documentation] * updated support status in several algorithms +* updated conformance to OGC or std +* other updates and fixes [*Internal changes] * updates in specializations/not_implemented for distance/convert/assign/area/with/covered_by * move of wkt/dsv to io folder, making domains redundant * warnings: strategy concepts assigned to zero to avoid clang warnings (patched by Vishnu) -* warnings: there were several unused parameters, for which gcc/clang warned. Fixed. +* warnings: there were several unused parameters, for which gcc/clang warned (patched by Christophe) [/=================] [heading Boost 1.48] diff --git a/doc/src/examples/algorithms/append.cpp b/doc/src/examples/algorithms/append.cpp index b4a662bba..f5a3085b5 100644 --- a/doc/src/examples/algorithms/append.cpp +++ b/doc/src/examples/algorithms/append.cpp @@ -32,14 +32,14 @@ int main() // Append a range append(poly, tuple_list_of(0, 0)(0, 10)(11, 11)(10, 0)); /*< tuple_list_of delivers a range and can therefore be used in boost::geometry::append >*/ - // Append a point (in this case the closing point + // Append a point (in this case the closing point) append(poly, make_tuple(0, 0)); // Create an interior ring (append does not do this automatically) boost::geometry::interior_rings(poly).resize(1); // Append a range to the interior ring - append(poly, tuple_list_of(2, 2)(2, 5)(6, 6)(5, 2), 0); + append(poly, tuple_list_of(2, 2)(2, 5)(6, 6)(5, 2), 0); /*< The last parameter ring_index 0 denotes the first interior ring >*/ // Append a point to the first interior ring append(poly, make_tuple(2, 2), 0); diff --git a/include/boost/geometry/algorithms/disjoint.hpp b/include/boost/geometry/algorithms/disjoint.hpp index 8e378510f..f36b8dbdd 100644 --- a/include/boost/geometry/algorithms/disjoint.hpp +++ b/include/boost/geometry/algorithms/disjoint.hpp @@ -228,7 +228,9 @@ struct disjoint_reversed \param geometry1 \param_geometry \param geometry2 \param_geometry \return \return_check2{are disjoint} - */ + +\qbk{[include reference/algorithms/disjoint.qbk]} +*/ template inline bool disjoint(Geometry1 const& geometry1, Geometry2 const& geometry2) diff --git a/include/boost/geometry/algorithms/envelope.hpp b/include/boost/geometry/algorithms/envelope.hpp index 612541be1..da34f6a78 100644 --- a/include/boost/geometry/algorithms/envelope.hpp +++ b/include/boost/geometry/algorithms/envelope.hpp @@ -216,14 +216,7 @@ struct envelope \param geometry \param_geometry \param mbr \param_box \param_set{envelope} -\par Example: -Example showing envelope calculation, using point_ll latlong points -\dontinclude doxygen_1.cpp -\skip example_envelope_polygon -\line { -\until } - - +\qbk{[include reference/algorithms/envelope.qbk]} \qbk{ [heading Example] [envelope] [envelope_output] @@ -253,6 +246,7 @@ inline void envelope(Geometry const& geometry, Box& mbr) \param geometry \param_geometry \return \return_calc{envelope} +\qbk{[include reference/algorithms/envelope.qbk]} \qbk{ [heading Example] [return_envelope] [return_envelope_output] diff --git a/include/boost/geometry/algorithms/for_each.hpp b/include/boost/geometry/algorithms/for_each.hpp index c1e65459e..671f26a70 100644 --- a/include/boost/geometry/algorithms/for_each.hpp +++ b/include/boost/geometry/algorithms/for_each.hpp @@ -250,6 +250,7 @@ struct for_each_segment \tparam Functor \tparam_functor \qbk{distinguish,const version} +\qbk{[include reference/algorithms/for_each_point.qbk]} \qbk{[heading Example]} \qbk{[for_each_point_const] [for_each_point_const_output]} */ @@ -277,6 +278,7 @@ inline Functor for_each_point(Geometry const& geometry, Functor f) \tparam Geometry \tparam_geometry \tparam Functor \tparam_functor +\qbk{[include reference/algorithms/for_each_point.qbk]} \qbk{[heading Example]} \qbk{[for_each_point] [for_each_point_output]} */ @@ -305,6 +307,7 @@ inline Functor for_each_point(Geometry& geometry, Functor f) \tparam Functor \tparam_functor \qbk{distinguish,const version} +\qbk{[include reference/algorithms/for_each_segment.qbk]} \qbk{[heading Example]} \qbk{[for_each_segment_const] [for_each_segment_const_output]} */ @@ -331,6 +334,8 @@ inline Functor for_each_segment(Geometry const& geometry, Functor f) \param f \par_for_each_f{segment} \tparam Geometry \tparam_geometry \tparam Functor \tparam_functor + +\qbk{[include reference/algorithms/for_each_segment.qbk]} */ template inline Functor for_each_segment(Geometry& geometry, Functor f) diff --git a/include/boost/geometry/algorithms/intersects.hpp b/include/boost/geometry/algorithms/intersects.hpp index a319750aa..f367f2e25 100644 --- a/include/boost/geometry/algorithms/intersects.hpp +++ b/include/boost/geometry/algorithms/intersects.hpp @@ -35,6 +35,7 @@ namespace boost { namespace geometry \return \return_check{is self-intersecting} \qbk{distinguish,one geometry} +\qbk{[def __one_parameter__]} \qbk{[include reference/algorithms/intersects.qbk]} */ template diff --git a/include/boost/geometry/algorithms/overlaps.hpp b/include/boost/geometry/algorithms/overlaps.hpp index 0ddef684c..2f854b4fd 100644 --- a/include/boost/geometry/algorithms/overlaps.hpp +++ b/include/boost/geometry/algorithms/overlaps.hpp @@ -179,7 +179,9 @@ struct overlaps \brief \brief_check2{overlap} \ingroup overlaps \return \return_check2{overlap} - */ + +\qbk{[include reference/algorithms/overlaps.qbk]} +*/ template inline bool overlaps(Geometry1 const& geometry1, Geometry2 const& geometry2) { diff --git a/include/boost/geometry/geometries/point_xy.hpp b/include/boost/geometry/geometries/point_xy.hpp index 90a83cf5f..652930666 100644 --- a/include/boost/geometry/geometries/point_xy.hpp +++ b/include/boost/geometry/geometries/point_xy.hpp @@ -36,6 +36,9 @@ namespace model { namespace d2 [heading Model of] [link geometry.reference.concepts.concept_point Point Concept] } + +\qbk{[include reference/geometries/point_assign_warning.qbk]} + */ template class point_xy : public model::point