mirror of
https://github.com/boostorg/geometry.git
synced 2026-02-12 12:12:10 +00:00
Fixed errors in doxygen_xml2qbk - lists support, additional paragraphs display.
Added warnings and infos. Rtree docs improved, added text formatting, warnings etc. [SVN r82446]
This commit is contained in:
@@ -17,7 +17,7 @@ detail::nearest_query<DistancesPredicates, Predicates> boost::geometry::index::a
|
||||
size_t k,
|
||||
Predicates const & pred)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `DistancesPredicates const &` ][ `dpred` ][Distance predicates. ]]
|
||||
@@ -33,7 +33,7 @@ The nearest query index adaptor generator.
|
||||
``template<typename DistancesPredicates>
|
||||
detail::nearest_query<DistancesPredicates, index::detail::empty> boost::geometry::index::adaptors::nearest_queried(DistancesPredicates const & dpred, size_t k)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `DistancesPredicates const &` ][ `dpred` ][Distance predicates. ]]
|
||||
@@ -48,7 +48,7 @@ The spatial query index adaptor generator.
|
||||
``template<typename Predicates>
|
||||
detail::spatial_query<Predicates> boost::geometry::index::adaptors::spatial_queried(Predicates const & pred)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `Predicates const &` ][ `pred` ][Spatial predicates. ]]
|
||||
|
||||
@@ -20,7 +20,7 @@ Generate a nearest query Point and Value's Indexable relationship while calculat
|
||||
``template<typename T>
|
||||
detail::to_nearest<T> boost::geometry::index::to_nearest(T const & v)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `T const &` ][ `v` ][Point or bound value. ]]
|
||||
@@ -35,7 +35,7 @@ Generate a nearest query Point and Value's Indexable relationship while calculat
|
||||
``template<typename T>
|
||||
detail::to_centroid<T> boost::geometry::index::to_centroid(T const & v)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `T const &` ][ `v` ][Point or bound value. ]]
|
||||
@@ -50,7 +50,7 @@ Generate a nearest query Point and Value's Indexable relationship while calculat
|
||||
``template<typename T>
|
||||
detail::to_furthest<T> boost::geometry::index::to_furthest(T const & v)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `T const &` ][ `v` ][Point or bound value. ]]
|
||||
@@ -65,7 +65,7 @@ Generate a distance predicate. This defines distances bounds which are used by k
|
||||
``template<typename PointRelation>
|
||||
detail::unbounded<PointRelation> boost::geometry::index::unbounded(PointRelation const & pr)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `PointRelation const &` ][ `pr` ][The point relation. This may be generated by bgi::to_nearest(Point), bgi::to_centroid(Point) or bgi::to_furthest(Point). ]]
|
||||
@@ -80,11 +80,11 @@ Generate a distance predicate. This defines distances bounds which are used by k
|
||||
``template<typename PointRelation, typename MinRelation>
|
||||
detail::min_bounded<PointRelation, MinRelation> boost::geometry::index::min_bounded(PointRelation const & pr, MinRelation const & minr)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `PointRelation const &` ][ `pr` ][The point relation. This may be generated by bgi::to_nearest(Point), bgi::to_centroid(Point) or bgi::to_furthest(Point). ]]
|
||||
[[ `MinRelation const &` ][ `minr` ][The minimum bound relation. This may be generated by bgi::to_nearest(min_distance), bgi::to_centroid(min_distance) or bgi::to_furthest(min_distance). ]]
|
||||
[[ `PointRelation const &` ][ `pr` ][The point relation. This may be generated by [^bgi::to_nearest(Point)], [^bgi::to_centroid(Point)] or [^bgi::to_furthest(Point)]. ]]
|
||||
[[ `MinRelation const &` ][ `minr` ][The minimum bound relation. This may be generated by [^bgi::to_nearest(min_distance)], [^bgi::to_centroid(min_distance)] or [^bgi::to_furthest(min_distance)]. ]]
|
||||
]
|
||||
[endsect]
|
||||
|
||||
@@ -96,11 +96,11 @@ Generate a distance predicate. This defines distances bounds which are used by k
|
||||
``template<typename PointRelation, typename MaxRelation>
|
||||
detail::max_bounded<PointRelation, MaxRelation> boost::geometry::index::max_bounded(PointRelation const & pr, MaxRelation const & maxr)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `PointRelation const &` ][ `pr` ][The point relation. This may be generated by bgi::to_nearest(Point), bgi::to_centroid(Point) or bgi::to_furthest(Point). ]]
|
||||
[[ `MaxRelation const &` ][ `maxr` ][The maximum bound relation. This may be generated by bgi::to_nearest(max_distance), bgi::to_centroid(max_distance) or bgi::to_furthest(max_distance). ]]
|
||||
[[ `PointRelation const &` ][ `pr` ][The point relation. This may be generated by [^bgi::to_nearest(Point)], [^bgi::to_centroid(Point)] or [^bgi::to_furthest(Point)]. ]]
|
||||
[[ `MaxRelation const &` ][ `maxr` ][The maximum bound relation. This may be generated by [^bgi::to_nearest(max_distance)], [^bgi::to_centroid(max_distance)] or [^bgi::to_furthest(max_distance)]. ]]
|
||||
]
|
||||
[endsect]
|
||||
|
||||
@@ -116,12 +116,12 @@ detail::bounded<PointRelation, MinRelation, MaxRelation> boost::geometry::index:
|
||||
MinRelation const & minr,
|
||||
MaxRelation const & maxr)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `PointRelation const &` ][ `pr` ][The point relation. This may be generated by bgi::to_nearest(Point), bgi::to_centroid(Point) or bgi::to_furthest(Point). ]]
|
||||
[[ `MinRelation const &` ][ `minr` ][The minimum bound relation. This may be generated by bgi::to_nearest(min_distance), bgi::to_centroid(min_distance) or bgi::to_furthest(min_distance). ]]
|
||||
[[ `MaxRelation const &` ][ `maxr` ][The maximum bound relation. This may be generated by bgi::to_nearest(max_distance), bgi::to_centroid(max_distance) or bgi::to_furthest(max_distance). ]]
|
||||
[[ `PointRelation const &` ][ `pr` ][The point relation. This may be generated by [^bgi::to_nearest(Point)], [^bgi::to_centroid(Point)] or [^bgi::to_furthest(Point)]. ]]
|
||||
[[ `MinRelation const &` ][ `minr` ][The minimum bound relation. This may be generated by [^bgi::to_nearest(min_distance)], [^bgi::to_centroid(min_distance)] or [^bgi::to_furthest(min_distance)]. ]]
|
||||
[[ `MaxRelation const &` ][ `maxr` ][The maximum bound relation. This may be generated by [^bgi::to_nearest(max_distance)], [^bgi::to_centroid(max_distance)] or [^bgi::to_furthest(max_distance)]. ]]
|
||||
]
|
||||
[endsect]
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ Returns insert iterator capable to insert values to the container (spatial index
|
||||
``template<typename Container>
|
||||
insert_iterator<Container> boost::geometry::index::inserter(Container & c)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `Container &` ][ `c` ][The reference to the container (spatial index) to which values will be inserted.]]
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
[[Function][Description]]
|
||||
[[[link geometry_index.r_tree.reference.group__predicates.function0 `empty()`]][Generate empty predicate. ]]
|
||||
[[[link geometry_index.r_tree.reference.group__predicates.function1 `value(ValuePredicate const &)`]][Generate value predicate. ]]
|
||||
[[[link geometry_index.r_tree.reference.group__predicates.function2 `covered_by(Geometry const &)`]][Generate covered_by() predicate. ]]
|
||||
[[[link geometry_index.r_tree.reference.group__predicates.function3 `disjoint(Geometry const &)`]][Generate disjoint() predicate. ]]
|
||||
[[[link geometry_index.r_tree.reference.group__predicates.function4 `intersects(Geometry const &)`]][Generate intersects() predicate. ]]
|
||||
[[[link geometry_index.r_tree.reference.group__predicates.function5 `overlaps(Geometry const &)`]][Generate overlaps() predicate. ]]
|
||||
[[[link geometry_index.r_tree.reference.group__predicates.function6 `within(Geometry const &)`]][Generate within() predicate. ]]
|
||||
[[[link geometry_index.r_tree.reference.group__predicates.function2 `covered_by(Geometry const &)`]][Generate [^covered_by()] predicate. ]]
|
||||
[[[link geometry_index.r_tree.reference.group__predicates.function3 `disjoint(Geometry const &)`]][Generate [^disjoint()] predicate. ]]
|
||||
[[[link geometry_index.r_tree.reference.group__predicates.function4 `intersects(Geometry const &)`]][Generate [^intersects()] predicate. ]]
|
||||
[[[link geometry_index.r_tree.reference.group__predicates.function5 `overlaps(Geometry const &)`]][Generate [^overlaps()] predicate. ]]
|
||||
[[[link geometry_index.r_tree.reference.group__predicates.function6 `within(Geometry const &)`]][Generate [^within()] predicate. ]]
|
||||
]
|
||||
|
||||
[section:function0 empty()]
|
||||
@@ -28,7 +28,7 @@ A wrapper around user-defined functor describing if Value should be returned by
|
||||
``template<typename ValuePredicate>
|
||||
detail::value<ValuePredicate> boost::geometry::index::value(ValuePredicate const & vpred)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `ValuePredicate const &` ][ `vpred` ][The functor. ]]
|
||||
@@ -36,14 +36,14 @@ detail::value<ValuePredicate> boost::geometry::index::value(ValuePredicate const
|
||||
[endsect]
|
||||
|
||||
[section:function2 covered_by(Geometry const &)]
|
||||
Generate covered_by() predicate.
|
||||
Generate [^covered_by()] predicate.
|
||||
|
||||
[heading Description]
|
||||
Generate a predicate defining Value and Geometry relationship. Value will be returned by the query if bg::covered_by(Indexable, Geometry) returns true.[heading Synopsis]
|
||||
Generate a predicate defining Value and Geometry relationship. Value will be returned by the query if [^bg::covered_by(Indexable, Geometry)] returns true.[heading Synopsis]
|
||||
``template<typename Geometry>
|
||||
detail::covered_by<Geometry> boost::geometry::index::covered_by(Geometry const & g)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `Geometry const &` ][ `g` ][The Geometry object. ]]
|
||||
@@ -51,14 +51,14 @@ detail::covered_by<Geometry> boost::geometry::index::covered_by(Geometry const &
|
||||
[endsect]
|
||||
|
||||
[section:function3 disjoint(Geometry const &)]
|
||||
Generate disjoint() predicate.
|
||||
Generate [^disjoint()] predicate.
|
||||
|
||||
[heading Description]
|
||||
Generate a predicate defining Value and Geometry relationship. Value will be returned by the query if bg::disjoint(Indexable, Geometry) returns true.[heading Synopsis]
|
||||
Generate a predicate defining Value and Geometry relationship. Value will be returned by the query if [^bg::disjoint(Indexable, Geometry)] returns true.[heading Synopsis]
|
||||
``template<typename Geometry>
|
||||
detail::disjoint<Geometry> boost::geometry::index::disjoint(Geometry const & g)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `Geometry const &` ][ `g` ][The Geometry object. ]]
|
||||
@@ -66,14 +66,14 @@ detail::disjoint<Geometry> boost::geometry::index::disjoint(Geometry const & g)`
|
||||
[endsect]
|
||||
|
||||
[section:function4 intersects(Geometry const &)]
|
||||
Generate intersects() predicate.
|
||||
Generate [^intersects()] predicate.
|
||||
|
||||
[heading Description]
|
||||
Generate a predicate defining Value and Geometry relationship. Value will be returned by the query if bg::intersects(Indexable, Geometry) returns true.[heading Synopsis]
|
||||
Generate a predicate defining Value and Geometry relationship. Value will be returned by the query if [^bg::intersects(Indexable, Geometry)] returns true.[heading Synopsis]
|
||||
``template<typename Geometry>
|
||||
detail::intersects<Geometry> boost::geometry::index::intersects(Geometry const & g)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `Geometry const &` ][ `g` ][The Geometry object. ]]
|
||||
@@ -81,14 +81,14 @@ detail::intersects<Geometry> boost::geometry::index::intersects(Geometry const &
|
||||
[endsect]
|
||||
|
||||
[section:function5 overlaps(Geometry const &)]
|
||||
Generate overlaps() predicate.
|
||||
Generate [^overlaps()] predicate.
|
||||
|
||||
[heading Description]
|
||||
Generate a predicate defining Value and Geometry relationship. Value will be returned by the query if bg::overlaps(Indexable, Geometry) returns true.[heading Synopsis]
|
||||
Generate a predicate defining Value and Geometry relationship. Value will be returned by the query if [^bg::overlaps(Indexable, Geometry)] returns true.[heading Synopsis]
|
||||
``template<typename Geometry>
|
||||
detail::overlaps<Geometry> boost::geometry::index::overlaps(Geometry const & g)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `Geometry const &` ][ `g` ][The Geometry object. ]]
|
||||
@@ -96,14 +96,14 @@ detail::overlaps<Geometry> boost::geometry::index::overlaps(Geometry const & g)`
|
||||
[endsect]
|
||||
|
||||
[section:function6 within(Geometry const &)]
|
||||
Generate within() predicate.
|
||||
Generate [^within()] predicate.
|
||||
|
||||
[heading Description]
|
||||
Generate a predicate defining Value and Geometry relationship. Value will be returned by the query if bg::within(Indexable, Geometry) returns true.[heading Synopsis]
|
||||
Generate a predicate defining Value and Geometry relationship. Value will be returned by the query if [^bg::within(Indexable, Geometry)] returns true.[heading Synopsis]
|
||||
``template<typename Geometry>
|
||||
detail::within<Geometry> boost::geometry::index::within(Geometry const & g)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `Geometry const &` ][ `g` ][The Geometry object. ]]
|
||||
|
||||
@@ -9,9 +9,32 @@ The R-tree spatial index.
|
||||
The R-tree spatial index. This is self-balancing spatial index capable to store various types of Values and balancing algorithms.
|
||||
|
||||
[heading Parameters]
|
||||
The user must pass a type defining the Parameters which will be used in rtree creation process. This type is used e.g. to specify balancing algorithm with specific parameters like min and max number of elements in node. Predefined algorithms with compile-time parameters are: bgi::linear<MinElements, MaxElements>, bgi::quadratic<MinElements, MaxElements>, bgi::rstar<MinElements, MaxElements, OverlapCostThreshold = 0, ReinsertedElements = MaxElements * 0.3>. Predefined algorithms with run-time parameters are: bgi::runtime::linear, bgi::runtime::quadratic, bgi::runtime::rstar.
|
||||
The user must pass a type defining the Parameters which will be used in rtree creation process. This type is used e.g. to specify balancing algorithm with specific parameters like min and max number of elements in node.
|
||||
|
||||
|
||||
|
||||
|
||||
Predefined algorithms with compile-time parameters are:
|
||||
|
||||
* [^bgi::linear<MinElements, MaxElements>],
|
||||
* [^bgi::quadratic<MinElements, MaxElements>],
|
||||
* [^bgi::rstar<MinElements, MaxElements, OverlapCostThreshold = 0, ReinsertedElements = MaxElements * 0.3>].
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Predefined algorithms with run-time parameters are:
|
||||
|
||||
* [^bgi::runtime::linear],
|
||||
* [^bgi::runtime::quadratic],
|
||||
* [^bgi::runtime::rstar].
|
||||
|
||||
|
||||
|
||||
[heading Translator]
|
||||
The Translator translates from Value to Indexable each time r-tree requires it. Which means that this operation is done for each Value access. Therefore the Translator should return the Indexable by const reference instead of a value. Default translator can translate all types adapted to Point or Box concepts (which are Indexables). It also handles std::pair<Indexable, T>, pointers, smart pointers, and iterators. E.g. If std::pair<Box, int> is stored, the default translator translates from std::pair<Box, int> const& to Box const&.
|
||||
The Translator translates from Value to Indexable each time r-tree requires it. Which means that this operation is done for each Value access. Therefore the Translator should return the Indexable by const reference instead of a value. Default translator can translate all types adapted to Point or Box concepts (called Indexables). It also handles [^std::pair<Indexable, T>] and [^boost::tuple<Indexable, ...>]. For example, if [^std::pair<Box, int>] is stored in the container, the default translator translates from [^std::pair<Box, int> const&] to [^Box const&].
|
||||
|
||||
[heading Header]
|
||||
`#include <boost/geometry/extensions/index/rtree/rtree.hpp>`
|
||||
@@ -94,14 +117,14 @@ The constructor.
|
||||
[heading Synopsis]
|
||||
``rtree(parameters_type parameters = parameters_type(), translator_type const & translator = translator_type())``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `parameters_type` ][ `parameters` ][The parameters object. ]]
|
||||
[[ `translator_type const &` ][ `translator` ][The translator object.]]
|
||||
]
|
||||
[heading Throws]
|
||||
If allocator default constructor throws.
|
||||
If allocator default constructor throws.
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -113,7 +136,7 @@ The constructor.
|
||||
translator_type const & translator,
|
||||
allocator_type allocator)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `parameters_type` ][ `parameters` ][The parameters object. ]]
|
||||
@@ -121,7 +144,7 @@ The constructor.
|
||||
[[ `allocator_type` ][ `allocator` ][The allocator object.]]
|
||||
]
|
||||
[heading Throws]
|
||||
If allocator copy constructor throws.
|
||||
If allocator copy constructor throws.
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -136,7 +159,7 @@ rtree(Iterator first,
|
||||
translator_type const & translator = translator_type(),
|
||||
allocator_type allocator = allocator_type())``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `Iterator` ][ `first` ][The beginning of the range of Values. ]]
|
||||
@@ -146,7 +169,14 @@ rtree(Iterator first,
|
||||
[[ `allocator_type` ][ `allocator` ][The allocator object.]]
|
||||
]
|
||||
[heading Throws]
|
||||
If allocator copy constructor throws. If Value copy constructor or copy assignment throws. When nodes allocation fails.
|
||||
|
||||
|
||||
* If allocator copy constructor throws.
|
||||
* If Value copy constructor or copy assignment throws.
|
||||
* If allocation throws.
|
||||
* When memory allocation for Node fails.
|
||||
|
||||
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -160,7 +190,7 @@ rtree(Range const & rng,
|
||||
translator_type const & translator = translator_type(),
|
||||
allocator_type allocator = allocator_type())``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `Range const &` ][ `rng` ][The range of Values. ]]
|
||||
@@ -169,7 +199,14 @@ rtree(Range const & rng,
|
||||
[[ `allocator_type` ][ `allocator` ][The allocator object.]]
|
||||
]
|
||||
[heading Throws]
|
||||
If allocator copy constructor throws. If Value copy constructor or copy assignment throws. When nodes allocation fails.
|
||||
|
||||
|
||||
* If allocator copy constructor throws.
|
||||
* If Value copy constructor or copy assignment throws.
|
||||
* If allocation throws.
|
||||
* When memory allocation for Node fails.
|
||||
|
||||
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -180,7 +217,7 @@ The destructor.
|
||||
``~rtree()``
|
||||
|
||||
[heading Throws]
|
||||
Nothing.
|
||||
Nothing.
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -191,13 +228,20 @@ The copy constructor.
|
||||
It uses parameters, translator and allocator from the source tree.[heading Synopsis]
|
||||
``rtree(rtree const & src)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `rtree const &` ][ `src` ][The rtree which content will be copied.]]
|
||||
]
|
||||
[heading Throws]
|
||||
If allocator copy constructor throws. If Value copy constructor throws. When nodes allocation fails.
|
||||
|
||||
|
||||
* If allocator copy constructor throws.
|
||||
* If Value copy constructor throws.
|
||||
* If allocation throws.
|
||||
* When memory allocation for Node fails.
|
||||
|
||||
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -208,14 +252,21 @@ The copy constructor.
|
||||
It uses Parameters and translator from the source tree.[heading Synopsis]
|
||||
``rtree(rtree const & src, allocator_type const & allocator)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `rtree const &` ][ `src` ][The rtree which content will be copied. ]]
|
||||
[[ `allocator_type const &` ][ `allocator` ][The allocator which will be used.]]
|
||||
]
|
||||
[heading Throws]
|
||||
If allocator copy constructor throws. If Value copy constructor throws. When nodes allocation fails.
|
||||
|
||||
|
||||
* If allocator copy constructor throws.
|
||||
* If Value copy constructor throws.
|
||||
* If allocation throws.
|
||||
* When memory allocation for Node fails.
|
||||
|
||||
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -226,13 +277,13 @@ The moving constructor.
|
||||
It uses parameters, translator and allocator from the source tree.[heading Synopsis]
|
||||
``rtree(rtree && src)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `rtree &&` ][ `src` ][The rtree which content will be moved.]]
|
||||
]
|
||||
[heading Throws]
|
||||
If allocator move constructor throws.
|
||||
If allocator move constructor throws.
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -243,13 +294,19 @@ The assignment operator.
|
||||
It uses parameters and translator from the source tree.[heading Synopsis]
|
||||
``rtree & operator=(const rtree & src)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `const rtree &` ][ `src` ][The rtree which content will be copied.]]
|
||||
]
|
||||
[heading Throws]
|
||||
If Value copy constructor throws. When nodes allocation fails.
|
||||
|
||||
|
||||
* If Value copy constructor throws.
|
||||
* If allocation throws.
|
||||
* When nodes allocation fails.
|
||||
|
||||
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -260,13 +317,19 @@ The moving assignment.
|
||||
It uses parameters and translator from the source tree.[heading Synopsis]
|
||||
``rtree & operator=(rtree && src)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `rtree &&` ][ `src` ][The rtree which content will be moved.]]
|
||||
]
|
||||
[heading Throws]
|
||||
Only if allocators aren't equal. If Value copy constructor throws. When nodes allocation fails.
|
||||
Only if allocators aren't equal.
|
||||
|
||||
* If Value copy constructor throws.
|
||||
* If allocation throws.
|
||||
* When nodes allocation fails.
|
||||
|
||||
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -277,13 +340,13 @@ Swaps contents of two rtrees.
|
||||
Parameters, translator and allocators are swapped as well.[heading Synopsis]
|
||||
``void swap(rtree & other)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `rtree &` ][ `other` ][The rtree which content will be swapped with this rtree content.]]
|
||||
]
|
||||
[heading Throws]
|
||||
If allocators swap throws.
|
||||
If allocators swap throws.
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -293,15 +356,21 @@ Insert a value to the index.
|
||||
[heading Synopsis]
|
||||
``void insert(value_type const & value)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `value_type const &` ][ `value` ][The value which will be stored in the container.]]
|
||||
]
|
||||
[heading Throws]
|
||||
If Value copy constructor or copy assignment throws. When nodes allocation fails.
|
||||
[heading Exception-safety]
|
||||
This operation is not thread safe. If it throws, the R-tree may be left in an inconsistent state, elements must not be inserted or removed, methods may return invalid data.
|
||||
|
||||
|
||||
* If Value copy constructor or copy assignment throws.
|
||||
* If allocation throws.
|
||||
* When nodes allocation fails.
|
||||
|
||||
|
||||
|
||||
[warning This operation is not thread safe. If it throws, the R-tree may be left in an inconsistent state, elements must not be inserted or removed, methods may return invalid data. ]
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -312,16 +381,22 @@ Insert a range of values to the index.
|
||||
``template<typename Iterator>
|
||||
void insert(Iterator first, Iterator last)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `Iterator` ][ `first` ][The beginning of the range of values. ]]
|
||||
[[ `Iterator` ][ `last` ][The end of the range of values.]]
|
||||
]
|
||||
[heading Throws]
|
||||
If Value copy constructor or copy assignment throws. When nodes allocation fails.
|
||||
[heading Exception-safety]
|
||||
This operation is not thread safe. If it throws, the R-tree may be left in an inconsistent state, elements must not be inserted or removed, methods may return invalid data.
|
||||
|
||||
|
||||
* If Value copy constructor or copy assignment throws.
|
||||
* If allocation throws.
|
||||
* When nodes allocation fails.
|
||||
|
||||
|
||||
|
||||
[warning This operation is not thread safe. If it throws, the R-tree may be left in an inconsistent state, elements must not be inserted or removed, methods may return invalid data. ]
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -332,15 +407,21 @@ Insert a range of values to the index.
|
||||
``template<typename Range>
|
||||
void insert(Range const & rng)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `Range const &` ][ `rng` ][The range of values.]]
|
||||
]
|
||||
[heading Throws]
|
||||
If Value copy constructor or copy assignment throws. When nodes allocation fails.
|
||||
[heading Exception-safety]
|
||||
This operation is not thread safe. If it throws, the R-tree may be left in an inconsistent state, elements must not be inserted or removed, methods may return invalid data.
|
||||
|
||||
|
||||
* If Value copy constructor or copy assignment throws.
|
||||
* If allocation throws.
|
||||
* When nodes allocation fails.
|
||||
|
||||
|
||||
|
||||
[warning This operation is not thread safe. If it throws, the R-tree may be left in an inconsistent state, elements must not be inserted or removed, methods may return invalid data. ]
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -348,10 +429,10 @@ This operation is not thread safe. If it throws, the R-tree may be left in an in
|
||||
Remove a value from the container.
|
||||
|
||||
[heading Description]
|
||||
In contrast to the STL set/map erase() method this method removes only one value from the container.[heading Synopsis]
|
||||
In contrast to the [^std::set] or [^std::map][^erase()] method this method removes only one value from the container.[heading Synopsis]
|
||||
``size_type remove(value_type const & value)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `value_type const &` ][ `value` ][The value which will be removed from the container.]]
|
||||
@@ -359,9 +440,15 @@ In contrast to the STL set/map erase() method this method removes only one value
|
||||
[heading Returns]
|
||||
1 if the value was removed, 0 otherwise.
|
||||
[heading Throws]
|
||||
If Value copy constructor or copy assignment throws. When nodes allocation fails.
|
||||
[heading Exception-safety]
|
||||
This operation is not thread safe. If it throws, the R-tree may be left in an inconsistent state, elements must not be inserted or removed, methods may return invalid data.
|
||||
|
||||
|
||||
* If Value copy constructor or copy assignment throws.
|
||||
* If allocation throws.
|
||||
* When nodes allocation fails.
|
||||
|
||||
|
||||
|
||||
[warning This operation is not thread safe. If it throws, the R-tree may be left in an inconsistent state, elements must not be inserted or removed, methods may return invalid data. ]
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -369,11 +456,11 @@ This operation is not thread safe. If it throws, the R-tree may be left in an in
|
||||
Remove a range of values from the container.
|
||||
|
||||
[heading Description]
|
||||
In contrast to the STL set/map erase() method it doesn't take iterators pointing to values stored in this container. It removes values equal to these passed as a range. Furthermore this method removes only one value for each one passed in the range, not all equal values.[heading Synopsis]
|
||||
In contrast to the [^std::set] or [^std::map][^erase()] method it doesn't take iterators pointing to values stored in this container. It removes values equal to these passed as a range. Furthermore this method removes only one value for each one passed in the range, not all equal values.[heading Synopsis]
|
||||
``template<typename Iterator>
|
||||
size_type remove(Iterator first, Iterator last)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `Iterator` ][ `first` ][The beginning of the range of values. ]]
|
||||
@@ -382,9 +469,15 @@ size_type remove(Iterator first, Iterator last)``
|
||||
[heading Returns]
|
||||
The number of removed values.
|
||||
[heading Throws]
|
||||
If Value copy constructor or copy assignment throws. When nodes allocation fails.
|
||||
[heading Exception-safety]
|
||||
This operation is not thread safe. If it throws, the R-tree may be left in an inconsistent state, elements must not be inserted or removed, methods may return invalid data.
|
||||
|
||||
|
||||
* If Value copy constructor or copy assignment throws.
|
||||
* If allocation throws.
|
||||
* When nodes allocation fails.
|
||||
|
||||
|
||||
|
||||
[warning This operation is not thread safe. If it throws, the R-tree may be left in an inconsistent state, elements must not be inserted or removed, methods may return invalid data. ]
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -392,11 +485,11 @@ This operation is not thread safe. If it throws, the R-tree may be left in an in
|
||||
Remove a range of values from the container.
|
||||
|
||||
[heading Description]
|
||||
In contrast to the STL set/map erase() method it removes values equal to these passed as a range. Furthermore, this method removes only one value for each one passed in the range, not all equal values.[heading Synopsis]
|
||||
In contrast to the [^std::set] or [^std::map][^erase()] method it removes values equal to these passed as a range. Furthermore, this method removes only one value for each one passed in the range, not all equal values.[heading Synopsis]
|
||||
``template<typename Range>
|
||||
size_type remove(Range const & rng)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `Range const &` ][ `rng` ][The range of values.]]
|
||||
@@ -404,9 +497,15 @@ size_type remove(Range const & rng)``
|
||||
[heading Returns]
|
||||
The number of removed values.
|
||||
[heading Throws]
|
||||
If Value copy constructor or copy assignment throws. When nodes allocation fails.
|
||||
[heading Exception-safety]
|
||||
This operation is not thread safe. If it throws, the R-tree may be left in an inconsistent state, elements must not be inserted or removed, methods may return invalid data.
|
||||
|
||||
|
||||
* If Value copy constructor or copy assignment throws.
|
||||
* If allocation throws.
|
||||
* When nodes allocation fails.
|
||||
|
||||
|
||||
|
||||
[warning This operation is not thread safe. If it throws, the R-tree may be left in an inconsistent state, elements must not be inserted or removed, methods may return invalid data. ]
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -414,11 +513,28 @@ This operation is not thread safe. If it throws, the R-tree may be left in an in
|
||||
Finds values meeting spatial predicates, e.g. intersecting some Box.
|
||||
|
||||
[heading Description]
|
||||
Spatial predicates may be a Geometry (in this case default predicate - intersects is used) or generated by bgi::covered_by(geometry), bgi::disjoint(geometry), bgi::intersects(geometry), bgi::overlaps(geometry), bgi::within(geometry), !bgi::covered_by(geometry), !bgi::disjoint(geometry), !bgi::intersects(geometry), !bgi::overlaps(geometry), !bgi::within(geometry) or bgi::value(func). Those predicates may be passed together in std::pair or boost::tuple.[heading Synopsis]
|
||||
[*Spatial predicates] may be a [^Geometry]. In this case Values intersecting the [^Geometry] are returned.
|
||||
|
||||
It may be generated by one of the functions listed below:
|
||||
|
||||
* [^bgi::covered_by(geometry)],
|
||||
* [^bgi::disjoint(geometry)],
|
||||
* [^bgi::intersects(geometry)] - default,
|
||||
* [^bgi::overlaps(geometry)],
|
||||
* [^bgi::within(geometry)],
|
||||
* [^!bgi::covered_by(geometry)],
|
||||
* [^!bgi::disjoint(geometry)],
|
||||
* [^!bgi::intersects(geometry)],
|
||||
* [^!bgi::overlaps(geometry)],
|
||||
* [^!bgi::within(geometry)]
|
||||
* [^bgi::value(func)].
|
||||
|
||||
|
||||
Those predicates may be passed together in [^std::pair<]...> or [^boost::tuple<]...>.[heading Synopsis]
|
||||
``template<typename Predicates, typename OutIter>
|
||||
size_type spatial_query(Predicates const & pred, OutIter out_it)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `Predicates const &` ][ `pred` ][The spatial predicates or a Geometry. ]]
|
||||
@@ -427,7 +543,12 @@ size_type spatial_query(Predicates const & pred, OutIter out_it)``
|
||||
[heading Returns]
|
||||
The number of values found.
|
||||
[heading Throws]
|
||||
If Value copy constructor or copy assignment throws. If OutIter dereference or increment throws.
|
||||
|
||||
|
||||
* If Value copy constructor or copy assignment throws.
|
||||
* If OutIter dereference or increment throws.
|
||||
|
||||
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -435,11 +556,34 @@ If Value copy constructor or copy assignment throws. If OutIter dereference or i
|
||||
Finds one value meeting distances predicates, e.g. nearest to some Point.
|
||||
|
||||
[heading Description]
|
||||
The distances predicates may be a Point. This is default case where Value which nearest point is closest to Point is returned. May be a PointRelation which define how distance to Value is calculated. This may be generated by bgi::to_nearest(Point), bgi::to_centroid(Point) or bgi::to_furthest(Point). DistancesPredicates may also define distances bounds. E.g. that some distance must be between min_distance and max_distance. This may be generated by bgi::unbounded(PointRelation) - default case, bgi::min_bounded(PointRelation, MinRelation), bgi::max_bounded(PointRelation, MaxRelation), bgi::bounded(PointRelation, MinRelation, MaxRelation). MinRelation and MaxRelation describes bounds and may be generated by bgi::to_nearest(dist_bound), bgi::to_centroid(dist_bound) or bgi::to_furthest(dist_bound).[heading Synopsis]
|
||||
[*Distances predicates] may be a [^Point]. In this the case the Value closest to [^Point] is returned.
|
||||
|
||||
It is possible to define how distance to Value is calculated. This is done by passing PointRelation. It can be generated by following functions:
|
||||
|
||||
* bgi::to_nearest(Point) - default,
|
||||
* bgi::to_centroid(Point),
|
||||
* bgi::to_furthest(Point).
|
||||
|
||||
|
||||
It is possible to define define distances bounds, for example that some distance must be between min_distance and max_distance. This is done by passing DistancesPredicates which can be generated by following functions:
|
||||
|
||||
* bgi::unbounded(PointRelation) - default,
|
||||
* bgi::min_bounded(PointRelation, MinRelation),
|
||||
* bgi::max_bounded(PointRelation, MaxRelation),
|
||||
* bgi::bounded(PointRelation, MinRelation, MaxRelation).
|
||||
|
||||
|
||||
MinRelation and MaxRelation describes bounds and can be generated by following functions:
|
||||
|
||||
* bgi::to_nearest(some_distance),
|
||||
* bgi::to_centroid(some_distance),
|
||||
* bgi::to_furthest(some_distance).
|
||||
|
||||
[heading Synopsis]
|
||||
``template<typename DistancesPredicates>
|
||||
size_type nearest_query(DistancesPredicates const & dpred, value_type & v)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `DistancesPredicates const &` ][ `dpred` ][The distances predicates or a Point.]]
|
||||
@@ -448,7 +592,7 @@ size_type nearest_query(DistancesPredicates const & dpred, value_type & v)``
|
||||
[heading Returns]
|
||||
The number of values found.
|
||||
[heading Throws]
|
||||
If Value copy constructor or copy assignment throws.
|
||||
If Value copy constructor or copy assignment throws.
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -456,15 +600,53 @@ If Value copy constructor or copy assignment throws.
|
||||
Finds one value meeting distances predicates and spatial predicates, e.g. nearest to some Point and intersecting some Box.
|
||||
|
||||
[heading Description]
|
||||
The distances predicates may be a Point. This is default case where Value which nearest point is closest to Point is returned. May be a PointRelation which define how distance to Value is calculated. This may be generated by bgi::to_nearest(Point), bgi::to_centroid(Point) or bgi::to_furthest(Point). DistancesPredicates may also define distances bounds. E.g. that some distance must be between min_distance and max_distance. This may be generated by bgi::unbounded(PointRelation) - default case, bgi::min_bounded(PointRelation, MinRelation), bgi::max_bounded(PointRelation, MaxRelation), bgi::bounded(PointRelation, MinRelation, MaxRelation). MinRelation and MaxRelation describes bounds and may be generated by bgi::to_nearest(dist_bound), bgi::to_centroid(dist_bound) or bgi::to_furthest(dist_bound).
|
||||
[*Distances predicates] may be a [^Point]. In this the case the Value closest to [^Point] is returned.
|
||||
|
||||
The spatial predicates. May be a Geometry (in this case default predicate - intersects is used) or generated by bgi::covered_by(geometry), bgi::disjoint(geometry), bgi::intersects(geometry), bgi::overlaps(geometry), bgi::within(geometry), !bgi::covered_by(geometry), !bgi::disjoint(geometry), !bgi::intersects(geometry), !bgi::overlaps(geometry), !bgi::within(geometry) or bgi::value(func). Those predicates may be passed together in std::pair or boost::tuple.[heading Synopsis]
|
||||
It is possible to define how distance to Value is calculated. This is done by passing PointRelation. It can be generated by following functions:
|
||||
|
||||
* bgi::to_nearest(Point) - default,
|
||||
* bgi::to_centroid(Point),
|
||||
* bgi::to_furthest(Point).
|
||||
|
||||
|
||||
It is possible to define define distances bounds, for example that some distance must be between min_distance and max_distance. This is done by passing DistancesPredicates which can be generated by following functions:
|
||||
|
||||
* bgi::unbounded(PointRelation) - default,
|
||||
* bgi::min_bounded(PointRelation, MinRelation),
|
||||
* bgi::max_bounded(PointRelation, MaxRelation),
|
||||
* bgi::bounded(PointRelation, MinRelation, MaxRelation).
|
||||
|
||||
|
||||
MinRelation and MaxRelation describes bounds and can be generated by following functions:
|
||||
|
||||
* bgi::to_nearest(some_distance),
|
||||
* bgi::to_centroid(some_distance),
|
||||
* bgi::to_furthest(some_distance).
|
||||
|
||||
[*Spatial predicates] may be a [^Geometry]. In this case Values intersecting the [^Geometry] are returned.
|
||||
|
||||
It may be generated by one of the functions listed below:
|
||||
|
||||
* [^bgi::covered_by(geometry)],
|
||||
* [^bgi::disjoint(geometry)],
|
||||
* [^bgi::intersects(geometry)] - default,
|
||||
* [^bgi::overlaps(geometry)],
|
||||
* [^bgi::within(geometry)],
|
||||
* [^!bgi::covered_by(geometry)],
|
||||
* [^!bgi::disjoint(geometry)],
|
||||
* [^!bgi::intersects(geometry)],
|
||||
* [^!bgi::overlaps(geometry)],
|
||||
* [^!bgi::within(geometry)]
|
||||
* [^bgi::value(func)].
|
||||
|
||||
|
||||
Those predicates may be passed together in [^std::pair<]...> or [^boost::tuple<]...>.[heading Synopsis]
|
||||
``template<typename DistancesPredicates, typename Predicates>
|
||||
size_type nearest_query(DistancesPredicates const & dpred,
|
||||
Predicates const & pred,
|
||||
value_type & v)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `DistancesPredicates const &` ][ `dpred` ][The distances predicates or a Point. ]]
|
||||
@@ -474,7 +656,7 @@ size_type nearest_query(DistancesPredicates const & dpred,
|
||||
[heading Returns]
|
||||
The number of values found.
|
||||
[heading Throws]
|
||||
If Value copy constructor or copy assignment throws.
|
||||
If Value copy constructor or copy assignment throws.
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -482,13 +664,36 @@ If Value copy constructor or copy assignment throws.
|
||||
Finds k values meeting distances predicates, e.g. k nearest values to some Point.
|
||||
|
||||
[heading Description]
|
||||
The distances predicates. May be a Point. This is default case where Value which nearest point is closest to Point is returned. May be a PointRelation which define how distance to Value is calculated. This may be generated by bgi::to_nearest(Point), bgi::to_centroid(Point) or bgi::to_furthest(Point). DistancesPredicates may also define distances bounds. E.g. that some distance must be between min_distance and max_distance. This may be generated by bgi::unbounded(PointRelation) - default case, bgi::min_bounded(PointRelation, MinRelation), bgi::max_bounded(PointRelation, MaxRelation), bgi::bounded(PointRelation, MinRelation, MaxRelation). MinRelation and MaxRelation describes bounds and may be generated by bgi::to_nearest(dist_bound), bgi::to_centroid(dist_bound) or bgi::to_furthest(dist_bound).[heading Synopsis]
|
||||
[*Distances predicates] may be a [^Point]. In this the case the Value closest to [^Point] is returned.
|
||||
|
||||
It is possible to define how distance to Value is calculated. This is done by passing PointRelation. It can be generated by following functions:
|
||||
|
||||
* bgi::to_nearest(Point) - default,
|
||||
* bgi::to_centroid(Point),
|
||||
* bgi::to_furthest(Point).
|
||||
|
||||
|
||||
It is possible to define define distances bounds, for example that some distance must be between min_distance and max_distance. This is done by passing DistancesPredicates which can be generated by following functions:
|
||||
|
||||
* bgi::unbounded(PointRelation) - default,
|
||||
* bgi::min_bounded(PointRelation, MinRelation),
|
||||
* bgi::max_bounded(PointRelation, MaxRelation),
|
||||
* bgi::bounded(PointRelation, MinRelation, MaxRelation).
|
||||
|
||||
|
||||
MinRelation and MaxRelation describes bounds and can be generated by following functions:
|
||||
|
||||
* bgi::to_nearest(some_distance),
|
||||
* bgi::to_centroid(some_distance),
|
||||
* bgi::to_furthest(some_distance).
|
||||
|
||||
[heading Synopsis]
|
||||
``template<typename DistancesPredicates, typename OutIter>
|
||||
size_type nearest_query(DistancesPredicates const & dpred,
|
||||
size_t k,
|
||||
OutIter out_it)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `DistancesPredicates const &` ][ `dpred` ][The distances predicates or a Point. ]]
|
||||
@@ -498,7 +703,7 @@ size_type nearest_query(DistancesPredicates const & dpred,
|
||||
[heading Returns]
|
||||
The number of values found.
|
||||
[heading Throws]
|
||||
If Value copy constructor or copy assignment throws. If OutIter dereference or increment throws.
|
||||
If Value copy constructor or copy assignment throws. If OutIter dereference or increment throws.
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -506,9 +711,47 @@ If Value copy constructor or copy assignment throws. If OutIter dereference or i
|
||||
Finds k values meeting distances predicates and spatial predicates, e.g. k nearest values to some Point and intersecting some Box.
|
||||
|
||||
[heading Description]
|
||||
The distances predicates may be a Point. This is default case where Value which nearest point is closest to Point is returned. May be a PointRelation which define how distance to Value is calculated. This may be generated by bgi::to_nearest(Point), bgi::to_centroid(Point) or bgi::to_furthest(Point). DistancesPredicates may also define distances bounds. E.g. that some distance must be between min_distance and max_distance. This may be generated by bgi::unbounded(PointRelation) - default case, bgi::min_bounded(PointRelation, MinRelation), bgi::max_bounded(PointRelation, MaxRelation), bgi::bounded(PointRelation, MinRelation, MaxRelation). MinRelation and MaxRelation describes bounds and may be generated by bgi::to_nearest(dist_bound), bgi::to_centroid(dist_bound) or bgi::to_furthest(dist_bound).
|
||||
[*Distances predicates] may be a [^Point]. In this the case the Value closest to [^Point] is returned.
|
||||
|
||||
The spatial predicates. May be a Geometry (in this case default predicate - intersects is used) or generated by bgi::covered_by(geometry), bgi::disjoint(geometry), bgi::intersects(geometry), bgi::overlaps(geometry), bgi::within(geometry), !bgi::covered_by(geometry), !bgi::disjoint(geometry), !bgi::intersects(geometry), !bgi::overlaps(geometry), !bgi::within(geometry) or bgi::value(func). Those predicates may be passed together in std::pair or boost::tuple.[heading Synopsis]
|
||||
It is possible to define how distance to Value is calculated. This is done by passing PointRelation. It can be generated by following functions:
|
||||
|
||||
* bgi::to_nearest(Point) - default,
|
||||
* bgi::to_centroid(Point),
|
||||
* bgi::to_furthest(Point).
|
||||
|
||||
|
||||
It is possible to define define distances bounds, for example that some distance must be between min_distance and max_distance. This is done by passing DistancesPredicates which can be generated by following functions:
|
||||
|
||||
* bgi::unbounded(PointRelation) - default,
|
||||
* bgi::min_bounded(PointRelation, MinRelation),
|
||||
* bgi::max_bounded(PointRelation, MaxRelation),
|
||||
* bgi::bounded(PointRelation, MinRelation, MaxRelation).
|
||||
|
||||
|
||||
MinRelation and MaxRelation describes bounds and can be generated by following functions:
|
||||
|
||||
* bgi::to_nearest(some_distance),
|
||||
* bgi::to_centroid(some_distance),
|
||||
* bgi::to_furthest(some_distance).
|
||||
|
||||
[*Spatial predicates] may be a [^Geometry]. In this case Values intersecting the [^Geometry] are returned.
|
||||
|
||||
It may be generated by one of the functions listed below:
|
||||
|
||||
* [^bgi::covered_by(geometry)],
|
||||
* [^bgi::disjoint(geometry)],
|
||||
* [^bgi::intersects(geometry)] - default,
|
||||
* [^bgi::overlaps(geometry)],
|
||||
* [^bgi::within(geometry)],
|
||||
* [^!bgi::covered_by(geometry)],
|
||||
* [^!bgi::disjoint(geometry)],
|
||||
* [^!bgi::intersects(geometry)],
|
||||
* [^!bgi::overlaps(geometry)],
|
||||
* [^!bgi::within(geometry)]
|
||||
* [^bgi::value(func)].
|
||||
|
||||
|
||||
Those predicates may be passed together in [^std::pair<]...> or [^boost::tuple<]...>.[heading Synopsis]
|
||||
``template<typename DistancesPredicates,
|
||||
typename Predicates,
|
||||
typename OutIter>
|
||||
@@ -517,7 +760,7 @@ size_type nearest_query(DistancesPredicates const & dpred,
|
||||
Predicates const & pred,
|
||||
OutIter out_it)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `DistancesPredicates const &` ][ `dpred` ][The distances predicates or a Point ]]
|
||||
@@ -528,7 +771,7 @@ size_type nearest_query(DistancesPredicates const & dpred,
|
||||
[heading Returns]
|
||||
The number of values found.
|
||||
[heading Throws]
|
||||
If Value copy constructor or copy assignment throws. If OutIter dereference or increment throws.
|
||||
If Value copy constructor or copy assignment throws. If OutIter dereference or increment throws.
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -541,7 +784,7 @@ Returns the number of stored values.
|
||||
[heading Returns]
|
||||
The number of stored values.
|
||||
[heading Throws]
|
||||
Nothing.
|
||||
Nothing.
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -554,7 +797,7 @@ Query if the container is empty.
|
||||
[heading Returns]
|
||||
true if the container is empty.
|
||||
[heading Throws]
|
||||
Nothing.
|
||||
Nothing.
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -565,7 +808,7 @@ Removes all values stored in the container.
|
||||
``void clear()``
|
||||
|
||||
[heading Throws]
|
||||
Nothing.
|
||||
Nothing.
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -573,13 +816,13 @@ Nothing.
|
||||
Returns the box containing all values stored in the container.
|
||||
|
||||
[heading Description]
|
||||
Returns the box containing all values stored in the container. If the container is empty the result of geometry::assign_inverse() is returned.[heading Synopsis]
|
||||
Returns the box containing all values stored in the container. If the container is empty the result of [^geometry::assign_inverse()] is returned.[heading Synopsis]
|
||||
``box_type box()``
|
||||
|
||||
[heading Returns]
|
||||
The box containing all values stored in the container or an invalid box if there are no values in the container.
|
||||
[heading Throws]
|
||||
Nothing.
|
||||
Nothing.
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -591,7 +834,7 @@ For indexable_type it returns the number of values which indexables equals the p
|
||||
``template<typename ValueOrIndexable>
|
||||
size_type count(ValueOrIndexable const & vori)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `ValueOrIndexable const &` ][ `vori` ][The value or indexable which will be counted.]]
|
||||
@@ -599,7 +842,7 @@ size_type count(ValueOrIndexable const & vori)``
|
||||
[heading Returns]
|
||||
The number of values found.
|
||||
[heading Throws]
|
||||
Nothing.
|
||||
Nothing.
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -612,7 +855,7 @@ Returns parameters.
|
||||
[heading Returns]
|
||||
The parameters object.
|
||||
[heading Throws]
|
||||
Nothing.
|
||||
Nothing.
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -625,7 +868,7 @@ Returns the translator object.
|
||||
[heading Returns]
|
||||
The translator object.
|
||||
[heading Throws]
|
||||
Nothing.
|
||||
Nothing.
|
||||
|
||||
[endsect]
|
||||
|
||||
@@ -638,7 +881,7 @@ Returns allocator used by the rtree.
|
||||
[heading Returns]
|
||||
The allocator.
|
||||
[heading Throws]
|
||||
If allocator copy constructor throws.
|
||||
If allocator copy constructor throws.
|
||||
|
||||
[endsect]
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ Insert a value to the index.
|
||||
typename Allocator>
|
||||
void boost::geometry::index::insert(rtree< Value, Options, Translator, Allocator > & tree, Value const & v)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `rtree< Value, Options, Translator, Allocator > &` ][ `tree` ][The spatial index. ]]
|
||||
@@ -51,7 +51,7 @@ void boost::geometry::index::insert(rtree< Value, Options, Translator, Allocator
|
||||
Iterator first,
|
||||
Iterator last)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `rtree< Value, Options, Translator, Allocator > &` ][ `tree` ][The spatial index. ]]
|
||||
@@ -71,7 +71,7 @@ Insert a range of values to the index.
|
||||
typename Range>
|
||||
void boost::geometry::index::insert(rtree< Value, Options, Translator, Allocator > & tree, Range const & rng)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `rtree< Value, Options, Translator, Allocator > &` ][ `tree` ][The spatial index. ]]
|
||||
@@ -83,14 +83,14 @@ void boost::geometry::index::insert(rtree< Value, Options, Translator, Allocator
|
||||
Remove a value from the container.
|
||||
|
||||
[heading Description]
|
||||
Remove a value from the container. In contrast to the STL set/map erase() method this function removes only one value from the container.[heading Synopsis]
|
||||
Remove a value from the container. In contrast to the [^std::set] or [^std::map][^erase()] method this function removes only one value from the container.[heading Synopsis]
|
||||
``template<typename Value,
|
||||
typename Options,
|
||||
typename Translator,
|
||||
typename Allocator>
|
||||
rtree<Value, Options, Translator, Allocator>::size_type boost::geometry::index::remove(rtree< Value, Options, Translator, Allocator > & tree, Value const & v)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `rtree< Value, Options, Translator, Allocator > &` ][ `tree` ][The spatial index. ]]
|
||||
@@ -104,7 +104,7 @@ rtree<Value, Options, Translator, Allocator>::size_type boost::geometry::index::
|
||||
Remove a range of values from the container.
|
||||
|
||||
[heading Description]
|
||||
Remove a range of values from the container. In contrast to the STL set/map erase() method it doesn't take iterators pointing to values stored in this container. It removes values equal to these passed as a range. Furthermore this function removes only one value for each one passed in the range, not all equal values.[heading Synopsis]
|
||||
Remove a range of values from the container. In contrast to the [^std::set] or [^std::map][^erase()] method it doesn't take iterators pointing to values stored in this container. It removes values equal to these passed as a range. Furthermore this function removes only one value for each one passed in the range, not all equal values.[heading Synopsis]
|
||||
``template<typename Value,
|
||||
typename Options,
|
||||
typename Translator,
|
||||
@@ -114,7 +114,7 @@ rtree<Value, Options, Translator, Allocator>::size_type boost::geometry::index::
|
||||
Iterator first,
|
||||
Iterator last)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `rtree< Value, Options, Translator, Allocator > &` ][ `tree` ][The spatial index. ]]
|
||||
@@ -129,7 +129,7 @@ The number of removed values.
|
||||
Remove a range of values from the container.
|
||||
|
||||
[heading Description]
|
||||
Remove a range of values from the container. In contrast to the STL set/map erase() method it removes values equal to these passed as a range. Furthermore this method removes only one value for each one passed in the range, not all equal values.[heading Synopsis]
|
||||
Remove a range of values from the container. In contrast to the [^std::set] or [^std::map][^erase()] method it removes values equal to these passed as a range. Furthermore this method removes only one value for each one passed in the range, not all equal values.[heading Synopsis]
|
||||
``template<typename Value,
|
||||
typename Options,
|
||||
typename Translator,
|
||||
@@ -137,7 +137,7 @@ Remove a range of values from the container. In contrast to the STL set/map eras
|
||||
typename Range>
|
||||
rtree<Value, Options, Translator, Allocator>::size_type boost::geometry::index::remove(rtree< Value, Options, Translator, Allocator > & tree, Range const & rng)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `rtree< Value, Options, Translator, Allocator > &` ][ `tree` ][The spatial index. ]]
|
||||
@@ -161,7 +161,7 @@ size_t boost::geometry::index::spatial_query(rtree< Value, Options, Translator,
|
||||
Predicates const & pred,
|
||||
OutIter out_it)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `rtree< Value, Options, Translator, Allocator > const &` ][ `tree` ][The spatial index. ]]
|
||||
@@ -185,7 +185,7 @@ size_t boost::geometry::index::nearest_query(rtree< Value, Options, Translator,
|
||||
DistancesPredicates const & dpred,
|
||||
Value & v)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `rtree< Value, Options, Translator, Allocator > const &` ][ `tree` ][The spatial index. ]]
|
||||
@@ -211,7 +211,7 @@ size_t boost::geometry::index::nearest_query(rtree< Value, Options, Translator,
|
||||
Predicates const & pred,
|
||||
Value & v)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `rtree< Value, Options, Translator, Allocator > const &` ][ `tree` ][The spatial index. ]]
|
||||
@@ -238,7 +238,7 @@ size_t boost::geometry::index::nearest_query(rtree< Value, Options, Translator,
|
||||
size_t k,
|
||||
OutIter out_it)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `rtree< Value, Options, Translator, Allocator > const &` ][ `tree` ][The spatial index. ]]
|
||||
@@ -267,7 +267,7 @@ size_t boost::geometry::index::nearest_query(rtree< Value, Options, Translator,
|
||||
Predicates const & pred,
|
||||
OutIter out_it)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `rtree< Value, Options, Translator, Allocator > const &` ][ `tree` ][The spatial index. ]]
|
||||
@@ -290,7 +290,7 @@ Remove all values from the index.
|
||||
typename Allocator>
|
||||
void boost::geometry::index::clear(rtree< Value, Options, Translator, Allocator > & tree)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `rtree< Value, Options, Translator, Allocator > &` ][ `tree` ][The spatial index. ]]
|
||||
@@ -307,7 +307,7 @@ Get the number of values stored in the index.
|
||||
typename Allocator>
|
||||
size_t boost::geometry::index::size(rtree< Value, Options, Translator, Allocator > const & tree)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `rtree< Value, Options, Translator, Allocator > const &` ][ `tree` ][The spatial index.]]
|
||||
@@ -326,7 +326,7 @@ Query if there are no values stored in the index.
|
||||
typename Allocator>
|
||||
bool boost::geometry::index::empty(rtree< Value, Options, Translator, Allocator > const & tree)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `rtree< Value, Options, Translator, Allocator > const &` ][ `tree` ][The spatial index.]]
|
||||
@@ -345,7 +345,7 @@ Get the box containing all stored values or an invalid box if the index has no v
|
||||
typename Allocator>
|
||||
rtree<Value, Options, Translator, Allocator>::box_type boost::geometry::index::box(rtree< Value, Options, Translator, Allocator > const & tree)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `rtree< Value, Options, Translator, Allocator > const &` ][ `tree` ][The spatial index.]]
|
||||
|
||||
@@ -37,7 +37,7 @@ The constructor.
|
||||
[heading Synopsis]
|
||||
``index(Container const & c)``
|
||||
|
||||
[heading Parameters]
|
||||
[heading Parameter(s)]
|
||||
[table
|
||||
[[Type][Name][Description]]
|
||||
[[ `Container const &` ][ `c` ][The container which stores indexed values. ]]
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Introduction</title>
|
||||
<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../index.html" title="Chapter 1. Geometry Index">
|
||||
<link rel="up" href="../index.html" title="Chapter 1. Geometry Index">
|
||||
<link rel="prev" href="../index.html" title="Chapter 1. Geometry Index">
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>R-tree</title>
|
||||
<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../index.html" title="Chapter 1. Geometry Index">
|
||||
<link rel="up" href="../index.html" title="Chapter 1. Geometry Index">
|
||||
<link rel="prev" href="introduction.html" title="Introduction">
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Creation and modification</title>
|
||||
<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Geometry Index">
|
||||
<link rel="up" href="../r_tree.html" title="R-tree">
|
||||
<link rel="prev" href="rtree_quickstart.html" title="Quick Start">
|
||||
@@ -55,7 +55,7 @@
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">rtree</span><span class="special"><</span><span class="identifier">Value</span><span class="special">,</span> <span class="identifier">Parameters</span><span class="special">,</span> <span class="identifier">Translator</span> <span class="special">=</span> <span class="identifier">translator</span><span class="special">::</span><span class="identifier">def</span><span class="special"><</span><span class="identifier">Value</span><span class="special">>,</span> <span class="identifier">Allocator</span><span class="special">></span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special"><</span><span class="identifier">Value</span><span class="special">></span> <span class="special">></span>
|
||||
</pre>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput">Value</code> - type of object which will be stored in the container,
|
||||
</li>
|
||||
@@ -90,7 +90,7 @@
|
||||
be handled by the default <code class="computeroutput">Translator</code> - <code class="computeroutput"><span class="identifier">index</span><span class="special">::</span><span class="identifier">translator</span><span class="special">::</span><span class="identifier">def</span><span class="special"><</span>Value<span class="special">></span></code>
|
||||
are defined as follows:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput">Indexable <span class="special">=</span> <a href="http://www.boost.org/libs/geometry/doc/html/geometry/reference/concepts/concept_point.html" target="_top">Point</a>
|
||||
<span class="special">|</span> <a href="http://www.boost.org/libs/geometry/doc/html/geometry/reference/concepts/concept_box.html" target="_top">Box</a></code>
|
||||
@@ -116,7 +116,7 @@
|
||||
A <code class="computeroutput">Translator</code> is a type which knows how to handle <code class="computeroutput">Value</code>s.
|
||||
It has two purposes:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
it translates <code class="computeroutput">Value</code> to a more suitable <code class="computeroutput">Indexable</code>
|
||||
type which is needed by most of operations,
|
||||
@@ -134,7 +134,7 @@
|
||||
<p>
|
||||
If comparison of two <code class="computeroutput">Value</code>s is required, the default translator:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
for <code class="computeroutput"><a href="http://www.boost.org/libs/geometry/doc/html/geometry/reference/concepts/concept_point.html" target="_top">Point</a></code>
|
||||
and <code class="computeroutput"><a href="http://www.boost.org/libs/geometry/doc/html/geometry/reference/concepts/concept_box.html" target="_top">Box</a></code>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Introduction</title>
|
||||
<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Geometry Index">
|
||||
<link rel="up" href="../r_tree.html" title="R-tree">
|
||||
<link rel="prev" href="../r_tree.html" title="R-tree">
|
||||
@@ -28,10 +28,10 @@
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
R-tree is a tree data structure used for spatial searching. It was proposed
|
||||
by Antonin Guttman in 1984 <a href="#ftn.geometry_index.r_tree.introduction.f0" class="footnote"><sup class="footnote"><a name="geometry_index.r_tree.introduction.f0"></a>[1]</sup></a> as an expansion of B-tree for multi-dimensional data. It may
|
||||
by Antonin Guttman in 1984 <sup>[<a name="geometry_index.r_tree.introduction.f0" href="#ftn.geometry_index.r_tree.introduction.f0" class="footnote">1</a>]</sup> as an expansion of B-tree for multi-dimensional data. It may
|
||||
be used to store points or volumetric data in order to perform a spatial
|
||||
query later. This query may return objects that are inside some area or are
|
||||
close to some point in space <a href="#ftn.geometry_index.r_tree.introduction.f1" class="footnote"><sup class="footnote"><a name="geometry_index.r_tree.introduction.f1"></a>[2]</sup></a>.
|
||||
close to some point in space <sup>[<a name="geometry_index.r_tree.introduction.f1" href="#ftn.geometry_index.r_tree.introduction.f1" class="footnote">2</a>]</sup>.
|
||||
</p>
|
||||
<p>
|
||||
The R-tree structure is presented on the image below. Each R-tree's node
|
||||
@@ -51,7 +51,7 @@
|
||||
</p>
|
||||
<p>
|
||||
The R-tree is a self-balanced data structure. The key part of balancing algorithm
|
||||
is node splitting algorithm <a href="#ftn.geometry_index.r_tree.introduction.f2" class="footnote"><sup class="footnote"><a name="geometry_index.r_tree.introduction.f2"></a>[3]</sup></a> <a href="#ftn.geometry_index.r_tree.introduction.f3" class="footnote"><sup class="footnote"><a name="geometry_index.r_tree.introduction.f3"></a>[4]</sup></a>. Each algorithm produces different splits so the internal structure
|
||||
is node splitting algorithm <sup>[<a name="geometry_index.r_tree.introduction.f2" href="#ftn.geometry_index.r_tree.introduction.f2" class="footnote">3</a>]</sup> <sup>[<a name="geometry_index.r_tree.introduction.f3" href="#ftn.geometry_index.r_tree.introduction.f3" class="footnote">4</a>]</sup>. Each algorithm produces different splits so the internal structure
|
||||
of a tree may be different for each one of them. In general more complex
|
||||
algorithms analyses elements better and produces less overlapping nodes.
|
||||
In the searching process less nodes must be traversed in order to find desired
|
||||
@@ -180,7 +180,7 @@
|
||||
<p>
|
||||
Key features of this implementation of the R-tree are:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
capable to store arbitrary Value type,
|
||||
</li>
|
||||
@@ -201,20 +201,20 @@
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="footnotes">
|
||||
<br><hr style="width:100; align:left;">
|
||||
<div id="ftn.geometry_index.r_tree.introduction.f0" class="footnote"><p><a href="#geometry_index.r_tree.introduction.f0" class="para"><sup class="para">[1] </sup></a>
|
||||
<br><hr width="100" align="left">
|
||||
<div class="footnote"><p><sup>[<a id="ftn.geometry_index.r_tree.introduction.f0" href="#geometry_index.r_tree.introduction.f0" class="para">1</a>] </sup>
|
||||
Guttman, A. (1984). <span class="emphasis"><em>R-Trees: A Dynamic Index Structure for Spatial
|
||||
Searching</em></span>
|
||||
</p></div>
|
||||
<div id="ftn.geometry_index.r_tree.introduction.f1" class="footnote"><p><a href="#geometry_index.r_tree.introduction.f1" class="para"><sup class="para">[2] </sup></a>
|
||||
<div class="footnote"><p><sup>[<a id="ftn.geometry_index.r_tree.introduction.f1" href="#geometry_index.r_tree.introduction.f1" class="para">2</a>] </sup>
|
||||
Cheung, K.; Fu, A. (1998). <span class="emphasis"><em>Enhanced Nearest Neighbour Search
|
||||
on the R-tree</em></span>
|
||||
</p></div>
|
||||
<div id="ftn.geometry_index.r_tree.introduction.f2" class="footnote"><p><a href="#geometry_index.r_tree.introduction.f2" class="para"><sup class="para">[3] </sup></a>
|
||||
<div class="footnote"><p><sup>[<a id="ftn.geometry_index.r_tree.introduction.f2" href="#geometry_index.r_tree.introduction.f2" class="para">3</a>] </sup>
|
||||
Greene, D. (1989). <span class="emphasis"><em>An implementation and performance analysis
|
||||
of spatial data access methods</em></span>
|
||||
</p></div>
|
||||
<div id="ftn.geometry_index.r_tree.introduction.f3" class="footnote"><p><a href="#geometry_index.r_tree.introduction.f3" class="para"><sup class="para">[4] </sup></a>
|
||||
<div class="footnote"><p><sup>[<a id="ftn.geometry_index.r_tree.introduction.f3" href="#geometry_index.r_tree.introduction.f3" class="para">4</a>] </sup>
|
||||
Beckmann, N.; Kriegel, H. P.; Schneider, R.; Seeger, B. (1990). <span class="emphasis"><em>The
|
||||
R*-tree: an efficient and robust access method for points and rectangles</em></span>
|
||||
</p></div>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Nearest neighbours queries</title>
|
||||
<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Geometry Index">
|
||||
<link rel="up" href="../r_tree.html" title="R-tree">
|
||||
<link rel="prev" href="spatial_queries.html" title="Spatial queries">
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Quick Start</title>
|
||||
<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Geometry Index">
|
||||
<link rel="up" href="../r_tree.html" title="R-tree">
|
||||
<link rel="prev" href="introduction.html" title="Introduction">
|
||||
@@ -150,7 +150,7 @@
|
||||
</p>
|
||||
<h4>
|
||||
<a name="geometry_index.r_tree.rtree_quickstart.h0"></a>
|
||||
<span class="phrase"><a name="geometry_index.r_tree.rtree_quickstart.more"></a></span><a class="link" href="rtree_quickstart.html#geometry_index.r_tree.rtree_quickstart.more">More</a>
|
||||
<span><a name="geometry_index.r_tree.rtree_quickstart.more"></a></span><a class="link" href="rtree_quickstart.html#geometry_index.r_tree.rtree_quickstart.more">More</a>
|
||||
</h4>
|
||||
<p>
|
||||
More information about the R-tree implementation, other algorithms and queries
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Spatial queries</title>
|
||||
<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Geometry Index">
|
||||
<link rel="up" href="../r_tree.html" title="R-tree">
|
||||
<link rel="prev" href="creation_and_modification.html" title="Creation and modification">
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Chapter 1. Geometry Index</title>
|
||||
<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="index.html" title="Chapter 1. Geometry Index">
|
||||
<link rel="next" href="geometry_index/introduction.html" title="Introduction">
|
||||
</head>
|
||||
@@ -56,7 +56,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"><p><small>Last revised: January 10, 2013 at 20:11:29 GMT</small></p></td>
|
||||
<td align="left"><p><small>Last revised: January 11, 2013 at 04:03:52 GMT</small></p></td>
|
||||
<td align="right"><div class="copyright-footer"></div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
|
||||
@@ -110,6 +110,8 @@ struct element : public base_element
|
||||
std::vector<parameter> parameters;
|
||||
|
||||
std::vector<paragraph> paragraphs;
|
||||
std::string warning;
|
||||
std::string note;
|
||||
|
||||
element()
|
||||
: line(0)
|
||||
|
||||
@@ -77,7 +77,7 @@ static void parse_para(rapidxml::xml_node<>* node, std::string& contents, bool&
|
||||
}
|
||||
else if ( boost::equals(name, "itemizedlist") )
|
||||
{
|
||||
contents += "\n";
|
||||
contents += "\n\n";
|
||||
parse_para(node->first_node(), contents, skip);
|
||||
contents += "\n";
|
||||
parse_para(node->next_sibling(), contents, skip);
|
||||
@@ -402,6 +402,14 @@ static void parse_element(rapidxml::xml_node<>* node, configuration const& confi
|
||||
|
||||
el.paragraphs.push_back(p);
|
||||
}
|
||||
else if (kind == "warning")
|
||||
{
|
||||
parse_para(node->first_node("para"), el.warning, el.skip);
|
||||
}
|
||||
else if (kind == "note")
|
||||
{
|
||||
parse_para(node->first_node("para"), el.note, el.skip);
|
||||
}
|
||||
}
|
||||
else if (full == ".param")
|
||||
{
|
||||
|
||||
@@ -748,6 +748,37 @@ void quickbook_output_function(std::vector<function> const& functions,
|
||||
<< std::endl;
|
||||
}
|
||||
|
||||
void output_paragraphs_note_warning(element const& el, std::ostream & out)
|
||||
{
|
||||
// Additional paragraphs
|
||||
if ( !el.paragraphs.empty() )
|
||||
{
|
||||
BOOST_FOREACH(paragraph const& p, el.paragraphs)
|
||||
{
|
||||
if ( !p.title.empty() )
|
||||
out << "[heading " << p.title << "]" << std::endl;
|
||||
else
|
||||
out << "\n\n" << std::endl;
|
||||
out << p.text << std::endl;
|
||||
out << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
// Note
|
||||
if ( !el.note.empty() )
|
||||
{
|
||||
out << "[note " << el.note << "]" << std::endl;
|
||||
out << std::endl;
|
||||
}
|
||||
|
||||
// Warning
|
||||
if ( !el.warning.empty() )
|
||||
{
|
||||
out << "[warning " << el.warning << "]" << std::endl;
|
||||
out << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
void quickbook_output_detail_function(std::vector<function> const& functions,
|
||||
function_type type,
|
||||
configuration const& config,
|
||||
@@ -813,19 +844,8 @@ void quickbook_output_detail_function(std::vector<function> const& functions,
|
||||
out << f.return_description << std::endl;
|
||||
}
|
||||
|
||||
// Additional paragraphs
|
||||
if ( !f.paragraphs.empty() )
|
||||
{
|
||||
BOOST_FOREACH(paragraph const& p, f.paragraphs)
|
||||
{
|
||||
if ( !p.title.empty() )
|
||||
out << "[heading " << p.title << "]" << std::endl;
|
||||
else
|
||||
out << "\n\n" << std::endl;
|
||||
out << p.text << std::endl;
|
||||
out << std::endl;
|
||||
}
|
||||
}
|
||||
// Additional paragraphs, note, warning
|
||||
output_paragraphs_note_warning(f, out);
|
||||
|
||||
// QBK markup
|
||||
quickbook_markup(f.qbk_markup, markup_any, markup_default, out);
|
||||
@@ -903,6 +923,10 @@ void quickbook_output_alt(class_or_struct const& cos, configuration const& confi
|
||||
|
||||
quickbook_string_with_heading_if_present("Description", cos.detailed_description, out);
|
||||
|
||||
// Additional paragraphs, note, warning
|
||||
output_paragraphs_note_warning(cos, out);
|
||||
|
||||
// Markup
|
||||
quickbook_markup(cos.qbk_markup, markup_any, markup_default, out);
|
||||
|
||||
// Header
|
||||
|
||||
@@ -288,10 +288,10 @@ Point but only if nearest points are further than some distance.
|
||||
\tparam PointRelation PointRelation type.
|
||||
\tparam MinRelation MinRelation type.
|
||||
|
||||
\param pr The point relation. This may be generated by bgi::to_nearest(Point),
|
||||
bgi::to_centroid(Point) or bgi::to_furthest(Point).
|
||||
\param minr The minimum bound relation. This may be generated by bgi::to_nearest(min_distance),
|
||||
bgi::to_centroid(min_distance) or bgi::to_furthest(min_distance).
|
||||
\param pr The point relation. This may be generated by \c bgi::to_nearest(Point),
|
||||
\c bgi::to_centroid(Point) or \c bgi::to_furthest(Point).
|
||||
\param minr The minimum bound relation. This may be generated by \c bgi::to_nearest(min_distance),
|
||||
\c bgi::to_centroid(min_distance) or \c bgi::to_furthest(min_distance).
|
||||
*/
|
||||
template <typename PointRelation, typename MinRelation>
|
||||
inline detail::min_bounded<PointRelation, MinRelation>
|
||||
@@ -314,10 +314,10 @@ Point but only if nearest points are closer than some distance.
|
||||
\tparam PointRelation PointRelation type.
|
||||
\tparam MaxRelation MaxRelation type.
|
||||
|
||||
\param pr The point relation. This may be generated by bgi::to_nearest(Point),
|
||||
bgi::to_centroid(Point) or bgi::to_furthest(Point).
|
||||
\param maxr The maximum bound relation. This may be generated by bgi::to_nearest(max_distance),
|
||||
bgi::to_centroid(max_distance) or bgi::to_furthest(max_distance).
|
||||
\param pr The point relation. This may be generated by \c bgi::to_nearest(Point),
|
||||
\c bgi::to_centroid(Point) or \c bgi::to_furthest(Point).
|
||||
\param maxr The maximum bound relation. This may be generated by \c bgi::to_nearest(max_distance),
|
||||
\c bgi::to_centroid(max_distance) or \c bgi::to_furthest(max_distance).
|
||||
*/
|
||||
template <typename PointRelation, typename MaxRelation>
|
||||
inline detail::max_bounded<PointRelation, MaxRelation>
|
||||
@@ -342,12 +342,12 @@ points are further than some distance and closer than some other distance.
|
||||
\tparam MinRelation MinRelation type.
|
||||
\tparam MaxRelation MaxRelation type.
|
||||
|
||||
\param pr The point relation. This may be generated by bgi::to_nearest(Point),
|
||||
bgi::to_centroid(Point) or bgi::to_furthest(Point).
|
||||
\param minr The minimum bound relation. This may be generated by bgi::to_nearest(min_distance),
|
||||
bgi::to_centroid(min_distance) or bgi::to_furthest(min_distance).
|
||||
\param maxr The maximum bound relation. This may be generated by bgi::to_nearest(max_distance),
|
||||
bgi::to_centroid(max_distance) or bgi::to_furthest(max_distance).
|
||||
\param pr The point relation. This may be generated by \c bgi::to_nearest(Point),
|
||||
\c bgi::to_centroid(Point) or \c bgi::to_furthest(Point).
|
||||
\param minr The minimum bound relation. This may be generated by \c bgi::to_nearest(min_distance),
|
||||
\c bgi::to_centroid(min_distance) or \c bgi::to_furthest(min_distance).
|
||||
\param maxr The maximum bound relation. This may be generated by \c bgi::to_nearest(max_distance),
|
||||
\c bgi::to_centroid(max_distance) or \c bgi::to_furthest(max_distance).
|
||||
*/
|
||||
template <typename PointRelation, typename MinRelation, typename MaxRelation>
|
||||
inline detail::bounded<PointRelation, MinRelation, MaxRelation>
|
||||
|
||||
@@ -154,10 +154,10 @@ inline detail::value<ValuePredicate> value(ValuePredicate const& vpred)
|
||||
}
|
||||
|
||||
/*!
|
||||
\brief Generate covered_by() predicate.
|
||||
\brief Generate \c covered_by() predicate.
|
||||
|
||||
Generate a predicate defining Value and Geometry relationship.
|
||||
Value will be returned by the query if bg::covered_by(Indexable, Geometry)
|
||||
Value will be returned by the query if <tt>bg::covered_by(Indexable, Geometry)</tt>
|
||||
returns true.
|
||||
|
||||
\ingroup predicates
|
||||
@@ -173,10 +173,10 @@ inline detail::covered_by<Geometry> covered_by(Geometry const& g)
|
||||
}
|
||||
|
||||
/*!
|
||||
\brief Generate disjoint() predicate.
|
||||
\brief Generate \c disjoint() predicate.
|
||||
|
||||
Generate a predicate defining Value and Geometry relationship.
|
||||
Value will be returned by the query if bg::disjoint(Indexable, Geometry)
|
||||
Value will be returned by the query if <tt>bg::disjoint(Indexable, Geometry)</tt>
|
||||
returns true.
|
||||
|
||||
\ingroup predicates
|
||||
@@ -192,10 +192,10 @@ inline detail::disjoint<Geometry> disjoint(Geometry const& g)
|
||||
}
|
||||
|
||||
/*!
|
||||
\brief Generate intersects() predicate.
|
||||
\brief Generate \c intersects() predicate.
|
||||
|
||||
Generate a predicate defining Value and Geometry relationship.
|
||||
Value will be returned by the query if bg::intersects(Indexable, Geometry)
|
||||
Value will be returned by the query if <tt>bg::intersects(Indexable, Geometry)</tt>
|
||||
returns true.
|
||||
|
||||
\ingroup predicates
|
||||
@@ -211,10 +211,10 @@ inline detail::intersects<Geometry> intersects(Geometry const& g)
|
||||
}
|
||||
|
||||
/*!
|
||||
\brief Generate overlaps() predicate.
|
||||
\brief Generate \c overlaps() predicate.
|
||||
|
||||
Generate a predicate defining Value and Geometry relationship.
|
||||
Value will be returned by the query if bg::overlaps(Indexable, Geometry)
|
||||
Value will be returned by the query if <tt>bg::overlaps(Indexable, Geometry)</tt>
|
||||
returns true.
|
||||
|
||||
\ingroup predicates
|
||||
@@ -230,10 +230,10 @@ inline detail::overlaps<Geometry> overlaps(Geometry const& g)
|
||||
}
|
||||
|
||||
//*!
|
||||
//\brief Generate touches() predicate.
|
||||
//\brief Generate \c touches() predicate.
|
||||
//
|
||||
//Generate a predicate defining Value and Geometry relationship.
|
||||
//Value will be returned by the query if bg::touches(Indexable, Geometry)
|
||||
//Value will be returned by the query if <tt>bg::touches(Indexable, Geometry)</tt>
|
||||
//returns true.
|
||||
//
|
||||
//\ingroup predicates
|
||||
@@ -249,10 +249,10 @@ inline detail::overlaps<Geometry> overlaps(Geometry const& g)
|
||||
//}
|
||||
|
||||
/*!
|
||||
\brief Generate within() predicate.
|
||||
\brief Generate \c within() predicate.
|
||||
|
||||
Generate a predicate defining Value and Geometry relationship.
|
||||
Value will be returned by the query if bg::within(Indexable, Geometry)
|
||||
Value will be returned by the query if <tt>bg::within(Indexable, Geometry)</tt>
|
||||
returns true.
|
||||
|
||||
\ingroup predicates
|
||||
|
||||
@@ -66,22 +66,26 @@ of Values and balancing algorithms.
|
||||
The user must pass a type defining the Parameters which will
|
||||
be used in rtree creation process. This type is used e.g. to specify balancing algorithm
|
||||
with specific parameters like min and max number of elements in node.
|
||||
|
||||
\par
|
||||
Predefined algorithms with compile-time parameters are:
|
||||
bgi::linear<MinElements, MaxElements>,
|
||||
bgi::quadratic<MinElements, MaxElements>,
|
||||
bgi::rstar<MinElements, MaxElements, OverlapCostThreshold = 0, ReinsertedElements = MaxElements * 0.3>.
|
||||
\li <tt>bgi::linear<MinElements, MaxElements></tt>,
|
||||
\li <tt>bgi::quadratic<MinElements, MaxElements></tt>,
|
||||
\li <tt>bgi::rstar<MinElements, MaxElements, OverlapCostThreshold = 0, ReinsertedElements = MaxElements * 0.3></tt>.
|
||||
|
||||
\par
|
||||
Predefined algorithms with run-time parameters are:
|
||||
bgi::runtime::linear,
|
||||
bgi::runtime::quadratic,
|
||||
bgi::runtime::rstar.
|
||||
\li \c bgi::runtime::linear,
|
||||
\li \c bgi::runtime::quadratic,
|
||||
\li \c bgi::runtime::rstar.
|
||||
|
||||
\par Translator
|
||||
The Translator translates from Value to Indexable each time r-tree requires it. Which means that this
|
||||
operation is done for each Value access. Therefore the Translator should return the Indexable by
|
||||
const reference instead of a value. Default translator can translate all types adapted to Point
|
||||
or Box concepts (which are Indexables). It also handles std::pair<Indexable, T>, pointers, smart pointers,
|
||||
and iterators. E.g. If std::pair<Box, int> is stored, the default translator translates from
|
||||
std::pair<Box, int> const& to Box const&.
|
||||
or Box concepts (called Indexables). It also handles <tt>std::pair<Indexable, T></tt> and
|
||||
<tt>boost::tuple<Indexable, ...></tt>. For example, if <tt>std::pair<Box, int></tt> is stored in the
|
||||
container, the default translator translates from <tt>std::pair<Box, int> const&</tt> to <tt>Box const&</tt>.
|
||||
|
||||
\tparam Value The type of objects stored in the container.
|
||||
\tparam Parameters Compile-time parameters.
|
||||
@@ -177,8 +181,10 @@ public:
|
||||
\param allocator The allocator object.
|
||||
|
||||
\par Throws
|
||||
If allocator copy constructor throws. If Value copy constructor or copy assignment throws.
|
||||
When nodes allocation fails.
|
||||
\li If allocator copy constructor throws.
|
||||
\li If Value copy constructor or copy assignment throws.
|
||||
\li If allocation throws.
|
||||
\li When memory allocation for Node fails.
|
||||
*/
|
||||
template<typename Iterator>
|
||||
inline rtree(Iterator first, Iterator last,
|
||||
@@ -212,8 +218,10 @@ public:
|
||||
\param allocator The allocator object.
|
||||
|
||||
\par Throws
|
||||
If allocator copy constructor throws. If Value copy constructor or copy assignment throws.
|
||||
When nodes allocation fails.
|
||||
\li If allocator copy constructor throws.
|
||||
\li If Value copy constructor or copy assignment throws.
|
||||
\li If allocation throws.
|
||||
\li When memory allocation for Node fails.
|
||||
*/
|
||||
template<typename Range>
|
||||
inline explicit rtree(Range const& rng,
|
||||
@@ -257,8 +265,10 @@ public:
|
||||
\param src The rtree which content will be copied.
|
||||
|
||||
\par Throws
|
||||
If allocator copy constructor throws. If Value copy constructor throws.
|
||||
When nodes allocation fails.
|
||||
\li If allocator copy constructor throws.
|
||||
\li If Value copy constructor throws.
|
||||
\li If allocation throws.
|
||||
\li When memory allocation for Node fails.
|
||||
*/
|
||||
inline rtree(rtree const& src)
|
||||
: m_translator(src.m_translator) // SHOULDN'T THROW
|
||||
@@ -282,8 +292,10 @@ public:
|
||||
\param allocator The allocator which will be used.
|
||||
|
||||
\par Throws
|
||||
If allocator copy constructor throws. If Value copy constructor throws.
|
||||
When nodes allocation fails.
|
||||
\li If allocator copy constructor throws.
|
||||
\li If Value copy constructor throws.
|
||||
\li If allocation throws.
|
||||
\li When memory allocation for Node fails.
|
||||
*/
|
||||
inline rtree(rtree const& src, allocator_type const& allocator)
|
||||
: m_translator(src.m_translator) // SHOULDN'T THROW
|
||||
@@ -328,8 +340,9 @@ public:
|
||||
\param src The rtree which content will be copied.
|
||||
|
||||
\par Throws
|
||||
If Value copy constructor throws.
|
||||
When nodes allocation fails.
|
||||
\li If Value copy constructor throws.
|
||||
\li If allocation throws.
|
||||
\li When nodes allocation fails.
|
||||
*/
|
||||
inline rtree & operator=(BOOST_COPY_ASSIGN_REF(rtree) src)
|
||||
{
|
||||
@@ -352,7 +365,10 @@ public:
|
||||
\param src The rtree which content will be moved.
|
||||
|
||||
\par Throws
|
||||
Only if allocators aren't equal. If Value copy constructor throws. When nodes allocation fails.
|
||||
Only if allocators aren't equal.
|
||||
\li If Value copy constructor throws.
|
||||
\li If allocation throws.
|
||||
\li When nodes allocation fails.
|
||||
*/
|
||||
inline rtree & operator=(BOOST_RV_REF(rtree) src)
|
||||
{
|
||||
@@ -412,9 +428,11 @@ public:
|
||||
\param value The value which will be stored in the container.
|
||||
|
||||
\par Throws
|
||||
If Value copy constructor or copy assignment throws. When nodes allocation fails.
|
||||
\li If Value copy constructor or copy assignment throws.
|
||||
\li If allocation throws.
|
||||
\li When nodes allocation fails.
|
||||
|
||||
\par Exception-safety
|
||||
\warning
|
||||
This operation is not thread safe. If it throws, the R-tree may be left in an inconsistent state,
|
||||
elements must not be inserted or removed, methods may return invalid data.
|
||||
*/
|
||||
@@ -433,9 +451,11 @@ public:
|
||||
\param last The end of the range of values.
|
||||
|
||||
\par Throws
|
||||
If Value copy constructor or copy assignment throws. When nodes allocation fails.
|
||||
\li If Value copy constructor or copy assignment throws.
|
||||
\li If allocation throws.
|
||||
\li When nodes allocation fails.
|
||||
|
||||
\par Exception-safety
|
||||
\warning
|
||||
This operation is not thread safe. If it throws, the R-tree may be left in an inconsistent state,
|
||||
elements must not be inserted or removed, methods may return invalid data.
|
||||
*/
|
||||
@@ -455,9 +475,11 @@ public:
|
||||
\param rng The range of values.
|
||||
|
||||
\par Throws
|
||||
If Value copy constructor or copy assignment throws. When nodes allocation fails.
|
||||
\li If Value copy constructor or copy assignment throws.
|
||||
\li If allocation throws.
|
||||
\li When nodes allocation fails.
|
||||
|
||||
\par Exception-safety
|
||||
\warning
|
||||
This operation is not thread safe. If it throws, the R-tree may be left in an inconsistent state,
|
||||
elements must not be inserted or removed, methods may return invalid data.
|
||||
*/
|
||||
@@ -475,7 +497,7 @@ public:
|
||||
/*!
|
||||
\brief Remove a value from the container.
|
||||
|
||||
In contrast to the STL set/map erase() method
|
||||
In contrast to the \c std::set or \c std::map \c erase() method
|
||||
this method removes only one value from the container.
|
||||
|
||||
\param value The value which will be removed from the container.
|
||||
@@ -483,9 +505,11 @@ public:
|
||||
\return 1 if the value was removed, 0 otherwise.
|
||||
|
||||
\par Throws
|
||||
If Value copy constructor or copy assignment throws. When nodes allocation fails.
|
||||
\li If Value copy constructor or copy assignment throws.
|
||||
\li If allocation throws.
|
||||
\li When nodes allocation fails.
|
||||
|
||||
\par Exception-safety
|
||||
\warning
|
||||
This operation is not thread safe. If it throws, the R-tree may be left in an inconsistent state,
|
||||
elements must not be inserted or removed, methods may return invalid data.
|
||||
*/
|
||||
@@ -497,7 +521,7 @@ public:
|
||||
/*!
|
||||
\brief Remove a range of values from the container.
|
||||
|
||||
In contrast to the STL set/map erase() method
|
||||
In contrast to the \c std::set or \c std::map \c erase() method
|
||||
it doesn't take iterators pointing to values stored in this container. It removes values equal
|
||||
to these passed as a range. Furthermore this method removes only one value for each one passed
|
||||
in the range, not all equal values.
|
||||
@@ -508,9 +532,11 @@ public:
|
||||
\return The number of removed values.
|
||||
|
||||
\par Throws
|
||||
If Value copy constructor or copy assignment throws. When nodes allocation fails.
|
||||
\li If Value copy constructor or copy assignment throws.
|
||||
\li If allocation throws.
|
||||
\li When nodes allocation fails.
|
||||
|
||||
\par Exception-safety
|
||||
\warning
|
||||
This operation is not thread safe. If it throws, the R-tree may be left in an inconsistent state,
|
||||
elements must not be inserted or removed, methods may return invalid data.
|
||||
*/
|
||||
@@ -526,7 +552,7 @@ public:
|
||||
/*!
|
||||
\brief Remove a range of values from the container.
|
||||
|
||||
In contrast to the STL set/map erase() method
|
||||
In contrast to the \c std::set or \c std::map \c erase() method
|
||||
it removes values equal to these passed as a range. Furthermore, this method removes only
|
||||
one value for each one passed in the range, not all equal values.
|
||||
|
||||
@@ -535,9 +561,11 @@ public:
|
||||
\return The number of removed values.
|
||||
|
||||
\par Throws
|
||||
If Value copy constructor or copy assignment throws. When nodes allocation fails.
|
||||
\li If Value copy constructor or copy assignment throws.
|
||||
\li If allocation throws.
|
||||
\li When nodes allocation fails.
|
||||
|
||||
\par Exception-safety
|
||||
\warning
|
||||
This operation is not thread safe. If it throws, the R-tree may be left in an inconsistent state,
|
||||
elements must not be inserted or removed, methods may return invalid data.
|
||||
*/
|
||||
@@ -554,13 +582,23 @@ public:
|
||||
/*!
|
||||
\brief Finds values meeting spatial predicates, e.g. intersecting some Box.
|
||||
|
||||
Spatial predicates may be a Geometry (in this case default
|
||||
predicate - intersects is used) or generated by bgi::covered_by(geometry),
|
||||
bgi::disjoint(geometry), bgi::intersects(geometry), bgi::overlaps(geometry),
|
||||
bgi::within(geometry), !bgi::covered_by(geometry), !bgi::disjoint(geometry),
|
||||
!bgi::intersects(geometry), !bgi::overlaps(geometry), !bgi::within(geometry)
|
||||
or bgi::value(func). Those predicates may be passed together in std::pair
|
||||
or boost::tuple.
|
||||
<b>Spatial predicates</b> may be a \c Geometry. In this case Values intersecting the \c Geometry are returned.
|
||||
|
||||
It may be generated by one of the functions listed below:
|
||||
\li \c bgi::covered_by(geometry),
|
||||
\li \c bgi::disjoint(geometry),
|
||||
\li \c bgi::intersects(geometry) - default,
|
||||
\li \c bgi::overlaps(geometry),
|
||||
\li \c bgi::within(geometry),
|
||||
\li \c !bgi::covered_by(geometry),
|
||||
\li \c !bgi::disjoint(geometry),
|
||||
\li \c !bgi::intersects(geometry),
|
||||
\li \c !bgi::overlaps(geometry),
|
||||
\li \c !bgi::within(geometry)
|
||||
\li \c bgi::value(func).
|
||||
|
||||
Those predicates may be passed together in
|
||||
\c std::pair<...> or \c boost::tuple<...>.
|
||||
|
||||
\param pred The spatial predicates or a Geometry.
|
||||
\param out_it The output iterator of the result range. E.g. an iterator generated by
|
||||
@@ -569,7 +607,8 @@ public:
|
||||
\return The number of values found.
|
||||
|
||||
\par Throws
|
||||
If Value copy constructor or copy assignment throws. If OutIter dereference or increment throws.
|
||||
\li If Value copy constructor or copy assignment throws.
|
||||
\li If OutIter dereference or increment throws.
|
||||
*/
|
||||
template <typename Predicates, typename OutIter>
|
||||
inline size_type spatial_query(Predicates const& pred, OutIter out_it) const
|
||||
@@ -588,15 +627,26 @@ public:
|
||||
/*!
|
||||
\brief Finds one value meeting distances predicates, e.g. nearest to some Point.
|
||||
|
||||
The distances predicates may be a Point. This is default case where Value which
|
||||
nearest point is closest to Point is returned. May be a PointRelation which define
|
||||
how distance to Value is calculated. This may be generated by bgi::to_nearest(Point),
|
||||
bgi::to_centroid(Point) or bgi::to_furthest(Point). DistancesPredicates may also define distances
|
||||
bounds. E.g. that some distance must be between min_distance and max_distance. This may
|
||||
be generated by bgi::unbounded(PointRelation) - default case, bgi::min_bounded(PointRelation, MinRelation),
|
||||
bgi::max_bounded(PointRelation, MaxRelation), bgi::bounded(PointRelation, MinRelation, MaxRelation).
|
||||
MinRelation and MaxRelation describes bounds and may be generated by bgi::to_nearest(dist_bound),
|
||||
bgi::to_centroid(dist_bound) or bgi::to_furthest(dist_bound).
|
||||
<b>Distances predicates</b> may be a \c Point. In this the case the Value closest to \c Point is returned.
|
||||
|
||||
It is possible to define how distance to Value is calculated. This is done by passing PointRelation.
|
||||
It can be generated by following functions:
|
||||
\li bgi::to_nearest(Point) - default,
|
||||
\li bgi::to_centroid(Point),
|
||||
\li bgi::to_furthest(Point).
|
||||
|
||||
It is possible to define define distances bounds, for example that some distance must be between
|
||||
min_distance and max_distance. This is done by passing DistancesPredicates which can be generated
|
||||
by following functions:
|
||||
\li bgi::unbounded(PointRelation) - default,
|
||||
\li bgi::min_bounded(PointRelation, MinRelation),
|
||||
\li bgi::max_bounded(PointRelation, MaxRelation),
|
||||
\li bgi::bounded(PointRelation, MinRelation, MaxRelation).
|
||||
|
||||
MinRelation and MaxRelation describes bounds and can be generated by following functions:
|
||||
\li bgi::to_nearest(some_distance),
|
||||
\li bgi::to_centroid(some_distance),
|
||||
\li bgi::to_furthest(some_distance).
|
||||
|
||||
\param dpred The distances predicates or a Point.
|
||||
|
||||
@@ -617,23 +667,44 @@ public:
|
||||
\brief Finds one value meeting distances predicates and spatial predicates,
|
||||
e.g. nearest to some Point and intersecting some Box.
|
||||
|
||||
The distances predicates may be a Point. This is default case where Value which
|
||||
nearest point is closest to Point is returned. May be a PointRelation which define
|
||||
how distance to Value is calculated. This may be generated by bgi::to_nearest(Point),
|
||||
bgi::to_centroid(Point) or bgi::to_furthest(Point). DistancesPredicates may also define distances
|
||||
bounds. E.g. that some distance must be between min_distance and max_distance. This may
|
||||
be generated by bgi::unbounded(PointRelation) - default case, bgi::min_bounded(PointRelation, MinRelation),
|
||||
bgi::max_bounded(PointRelation, MaxRelation), bgi::bounded(PointRelation, MinRelation, MaxRelation).
|
||||
MinRelation and MaxRelation describes bounds and may be generated by bgi::to_nearest(dist_bound),
|
||||
bgi::to_centroid(dist_bound) or bgi::to_furthest(dist_bound).
|
||||
<b>Distances predicates</b> may be a \c Point. In this the case the Value closest to \c Point is returned.
|
||||
|
||||
The spatial predicates. May be a Geometry (in this case default
|
||||
predicate - intersects is used) or generated by bgi::covered_by(geometry),
|
||||
bgi::disjoint(geometry), bgi::intersects(geometry), bgi::overlaps(geometry),
|
||||
bgi::within(geometry), !bgi::covered_by(geometry), !bgi::disjoint(geometry),
|
||||
!bgi::intersects(geometry), !bgi::overlaps(geometry), !bgi::within(geometry)
|
||||
or bgi::value(func). Those predicates may be passed together in std::pair
|
||||
or boost::tuple.
|
||||
It is possible to define how distance to Value is calculated. This is done by passing PointRelation.
|
||||
It can be generated by following functions:
|
||||
\li bgi::to_nearest(Point) - default,
|
||||
\li bgi::to_centroid(Point),
|
||||
\li bgi::to_furthest(Point).
|
||||
|
||||
It is possible to define define distances bounds, for example that some distance must be between
|
||||
min_distance and max_distance. This is done by passing DistancesPredicates which can be generated
|
||||
by following functions:
|
||||
\li bgi::unbounded(PointRelation) - default,
|
||||
\li bgi::min_bounded(PointRelation, MinRelation),
|
||||
\li bgi::max_bounded(PointRelation, MaxRelation),
|
||||
\li bgi::bounded(PointRelation, MinRelation, MaxRelation).
|
||||
|
||||
MinRelation and MaxRelation describes bounds and can be generated by following functions:
|
||||
\li bgi::to_nearest(some_distance),
|
||||
\li bgi::to_centroid(some_distance),
|
||||
\li bgi::to_furthest(some_distance).
|
||||
|
||||
<b>Spatial predicates</b> may be a \c Geometry. In this case Values intersecting the \c Geometry are returned.
|
||||
|
||||
It may be generated by one of the functions listed below:
|
||||
\li \c bgi::covered_by(geometry),
|
||||
\li \c bgi::disjoint(geometry),
|
||||
\li \c bgi::intersects(geometry) - default,
|
||||
\li \c bgi::overlaps(geometry),
|
||||
\li \c bgi::within(geometry),
|
||||
\li \c !bgi::covered_by(geometry),
|
||||
\li \c !bgi::disjoint(geometry),
|
||||
\li \c !bgi::intersects(geometry),
|
||||
\li \c !bgi::overlaps(geometry),
|
||||
\li \c !bgi::within(geometry)
|
||||
\li \c bgi::value(func).
|
||||
|
||||
Those predicates may be passed together in
|
||||
\c std::pair<...> or \c boost::tuple<...>.
|
||||
|
||||
\param dpred The distances predicates or a Point.
|
||||
\param pred The spatial predicates or a Geometry
|
||||
@@ -653,15 +724,26 @@ public:
|
||||
/*!
|
||||
\brief Finds k values meeting distances predicates, e.g. k nearest values to some Point.
|
||||
|
||||
The distances predicates. May be a Point. This is default case where Value which
|
||||
nearest point is closest to Point is returned. May be a PointRelation which define
|
||||
how distance to Value is calculated. This may be generated by bgi::to_nearest(Point),
|
||||
bgi::to_centroid(Point) or bgi::to_furthest(Point). DistancesPredicates may also define distances
|
||||
bounds. E.g. that some distance must be between min_distance and max_distance. This may
|
||||
be generated by bgi::unbounded(PointRelation) - default case, bgi::min_bounded(PointRelation, MinRelation),
|
||||
bgi::max_bounded(PointRelation, MaxRelation), bgi::bounded(PointRelation, MinRelation, MaxRelation).
|
||||
MinRelation and MaxRelation describes bounds and may be generated by bgi::to_nearest(dist_bound),
|
||||
bgi::to_centroid(dist_bound) or bgi::to_furthest(dist_bound).
|
||||
<b>Distances predicates</b> may be a \c Point. In this the case the Value closest to \c Point is returned.
|
||||
|
||||
It is possible to define how distance to Value is calculated. This is done by passing PointRelation.
|
||||
It can be generated by following functions:
|
||||
\li bgi::to_nearest(Point) - default,
|
||||
\li bgi::to_centroid(Point),
|
||||
\li bgi::to_furthest(Point).
|
||||
|
||||
It is possible to define define distances bounds, for example that some distance must be between
|
||||
min_distance and max_distance. This is done by passing DistancesPredicates which can be generated
|
||||
by following functions:
|
||||
\li bgi::unbounded(PointRelation) - default,
|
||||
\li bgi::min_bounded(PointRelation, MinRelation),
|
||||
\li bgi::max_bounded(PointRelation, MaxRelation),
|
||||
\li bgi::bounded(PointRelation, MinRelation, MaxRelation).
|
||||
|
||||
MinRelation and MaxRelation describes bounds and can be generated by following functions:
|
||||
\li bgi::to_nearest(some_distance),
|
||||
\li bgi::to_centroid(some_distance),
|
||||
\li bgi::to_furthest(some_distance).
|
||||
|
||||
\param dpred The distances predicates or a Point.
|
||||
\param k The max number of values.
|
||||
@@ -682,23 +764,44 @@ public:
|
||||
\brief Finds k values meeting distances predicates and spatial predicates,
|
||||
e.g. k nearest values to some Point and intersecting some Box.
|
||||
|
||||
The distances predicates may be a Point. This is default case where Value which
|
||||
nearest point is closest to Point is returned. May be a PointRelation which define
|
||||
how distance to Value is calculated. This may be generated by bgi::to_nearest(Point),
|
||||
bgi::to_centroid(Point) or bgi::to_furthest(Point). DistancesPredicates may also define distances
|
||||
bounds. E.g. that some distance must be between min_distance and max_distance. This may
|
||||
be generated by bgi::unbounded(PointRelation) - default case, bgi::min_bounded(PointRelation, MinRelation),
|
||||
bgi::max_bounded(PointRelation, MaxRelation), bgi::bounded(PointRelation, MinRelation, MaxRelation).
|
||||
MinRelation and MaxRelation describes bounds and may be generated by bgi::to_nearest(dist_bound),
|
||||
bgi::to_centroid(dist_bound) or bgi::to_furthest(dist_bound).
|
||||
<b>Distances predicates</b> may be a \c Point. In this the case the Value closest to \c Point is returned.
|
||||
|
||||
The spatial predicates. May be a Geometry (in this case default
|
||||
predicate - intersects is used) or generated by bgi::covered_by(geometry),
|
||||
bgi::disjoint(geometry), bgi::intersects(geometry), bgi::overlaps(geometry),
|
||||
bgi::within(geometry), !bgi::covered_by(geometry), !bgi::disjoint(geometry),
|
||||
!bgi::intersects(geometry), !bgi::overlaps(geometry), !bgi::within(geometry)
|
||||
or bgi::value(func). Those predicates may be passed together in std::pair
|
||||
or boost::tuple.
|
||||
It is possible to define how distance to Value is calculated. This is done by passing PointRelation.
|
||||
It can be generated by following functions:
|
||||
\li bgi::to_nearest(Point) - default,
|
||||
\li bgi::to_centroid(Point),
|
||||
\li bgi::to_furthest(Point).
|
||||
|
||||
It is possible to define define distances bounds, for example that some distance must be between
|
||||
min_distance and max_distance. This is done by passing DistancesPredicates which can be generated
|
||||
by following functions:
|
||||
\li bgi::unbounded(PointRelation) - default,
|
||||
\li bgi::min_bounded(PointRelation, MinRelation),
|
||||
\li bgi::max_bounded(PointRelation, MaxRelation),
|
||||
\li bgi::bounded(PointRelation, MinRelation, MaxRelation).
|
||||
|
||||
MinRelation and MaxRelation describes bounds and can be generated by following functions:
|
||||
\li bgi::to_nearest(some_distance),
|
||||
\li bgi::to_centroid(some_distance),
|
||||
\li bgi::to_furthest(some_distance).
|
||||
|
||||
<b>Spatial predicates</b> may be a \c Geometry. In this case Values intersecting the \c Geometry are returned.
|
||||
|
||||
It may be generated by one of the functions listed below:
|
||||
\li \c bgi::covered_by(geometry),
|
||||
\li \c bgi::disjoint(geometry),
|
||||
\li \c bgi::intersects(geometry) - default,
|
||||
\li \c bgi::overlaps(geometry),
|
||||
\li \c bgi::within(geometry),
|
||||
\li \c !bgi::covered_by(geometry),
|
||||
\li \c !bgi::disjoint(geometry),
|
||||
\li \c !bgi::intersects(geometry),
|
||||
\li \c !bgi::overlaps(geometry),
|
||||
\li \c !bgi::within(geometry)
|
||||
\li \c bgi::value(func).
|
||||
|
||||
Those predicates may be passed together in
|
||||
\c std::pair<...> or \c boost::tuple<...>.
|
||||
|
||||
\param dpred The distances predicates or a Point
|
||||
\param k The max number of values.
|
||||
@@ -757,7 +860,7 @@ public:
|
||||
\brief Returns the box containing all values stored in the container.
|
||||
|
||||
Returns the box containing all values stored in the container.
|
||||
If the container is empty the result of geometry::assign_inverse() is returned.
|
||||
If the container is empty the result of \c geometry::assign_inverse() is returned.
|
||||
|
||||
\return The box containing all values stored in the container or an invalid box if
|
||||
there are no values in the container.
|
||||
@@ -1170,7 +1273,7 @@ inline void insert(rtree<Value, Options, Translator, Allocator> & tree, Range co
|
||||
/*!
|
||||
\brief Remove a value from the container.
|
||||
|
||||
Remove a value from the container. In contrast to the STL set/map erase() method
|
||||
Remove a value from the container. In contrast to the \c std::set or \c std::map \c erase() method
|
||||
this function removes only one value from the container.
|
||||
|
||||
\ingroup rtree_functions
|
||||
@@ -1190,7 +1293,7 @@ remove(rtree<Value, Options, Translator, Allocator> & tree, Value const& v)
|
||||
/*!
|
||||
\brief Remove a range of values from the container.
|
||||
|
||||
Remove a range of values from the container. In contrast to the STL set/map erase() method
|
||||
Remove a range of values from the container. In contrast to the \c std::set or \c std::map \c erase() method
|
||||
it doesn't take iterators pointing to values stored in this container. It removes values equal
|
||||
to these passed as a range. Furthermore this function removes only one value for each one passed
|
||||
in the range, not all equal values.
|
||||
@@ -1213,7 +1316,7 @@ remove(rtree<Value, Options, Translator, Allocator> & tree, Iterator first, Iter
|
||||
/*!
|
||||
\brief Remove a range of values from the container.
|
||||
|
||||
Remove a range of values from the container. In contrast to the STL set/map erase() method
|
||||
Remove a range of values from the container. In contrast to the \c std::set or \c std::map \c erase() method
|
||||
it removes values equal to these passed as a range. Furthermore this method removes only
|
||||
one value for each one passed in the range, not all equal values.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user