Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

boost::geometry::index::rtree

rtree()
rtree(parameters_type const &, indexable_getter const &, value_equal const &, allocator_type const &)
rtree(Iterator, Iterator)
rtree(Range const &)
~rtree()
rtree(rtree const &)
rtree(rtree const &, allocator_type const &)
rtree(rtree &&)
rtree(rtree &&, allocator_type const &)
operator=(rtree const &)
operator=(rtree &&)
swap(rtree &)
insert(value_type const &)
insert(Iterator, Iterator)
insert(Range const &)
remove(value_type const &)
remove(Iterator, Iterator)
remove(Range const &)
query(Predicates const &, OutIter)
qbegin(Predicates const &)
qend()
size()
empty()
clear()
bounds()
count(ValueOrIndexable const &)
parameters()
indexable_get()
value_eq()
get_allocator()

The R-tree spatial index.

Description

This is self-balancing spatial index capable to store various types of Values and balancing algorithms.

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:

Predefined algorithms with run-time parameters are:

IndexableGetter

The object of IndexableGetter type translates from Value to Indexable each time r-tree requires it. Which means that this operation is done for each Value access. Therefore the IndexableGetter should return the Indexable by const reference instead of a value. Default one 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 IndexableGetter translates from std::pair<Box, int> const& to Box const&.

EqualTo

The object of EqualTo type compares Values and returns true if they're equal. It's similar to std::equal_to<>. The default EqualTo returns the result of boost::geometry::equals() for types adapted to some Geometry concept defined in Boost.Geometry and the result of operator= for other types. Components of Pairs and Tuples are compared left-to-right.

Header

#include <boost/geometry/index/rtree.hpp>

Synopsis
template<typename Value,
         typename Parameters,
         typename IndexableGetter = index::indexable<Value>,
         typename EqualTo = index::equal_to<Value>,
         typename Allocator = std::allocator<Value>>
class rtree
{
  // ...
};
Template parameter(s)

Parameter

Description

Value

The type of objects stored in the container.

Parameters

Compile-time parameters.

IndexableGetter

The function object extracting Indexable from Value.

EqualTo

The function object comparing objects of type Value.

Allocator

The allocator used to allocate/deallocate memory, construct/destroy nodes and Values.

Typedef(s)

Type

Description

value_type

The type of Value stored in the container.

parameters_type

R-tree parameters type.

indexable_getter

The function object extracting Indexable from Value.

value_equal

The function object comparing objects of type Value.

allocator_type

The type of allocator used by the container.

indexable_type

The Indexable type to which Value is translated.

bounds_type

The Box type used by the R-tree.

reference

Type of reference to Value.

const_reference

Type of reference to const Value.

pointer

Type of pointer to Value.

const_pointer

Type of pointer to const Value.

difference_type

Type of difference type.

size_type

Unsigned integral type used by the container.

const_query_iterator

Type of const query iterator.

Constructor(s) and destructor

Function

Description

rtree()

The constructor.

rtree(parameters_type const &, indexable_getter const &, value_equal const &, allocator_type const &)

The constructor.

rtree(Iterator, Iterator)

The constructor.

rtree(Range const &)

The constructor.

~rtree()

The destructor.

rtree(rtree const &)

The copy constructor.

rtree(rtree const &, allocator_type const &)

The copy constructor.

rtree(rtree &&)

The moving constructor.

rtree(rtree &&, allocator_type const &)

The moving constructor.

Member(s)

Modifier

Function

Description

operator=(rtree const &)

The assignment operator.

operator=(rtree &&)

The moving assignment.

swap(rtree &)

Swaps contents of two rtrees.

insert(value_type const &)

Insert a value to the index.

insert(Iterator, Iterator)

Insert a range of values to the index.

insert(Range const &)

Insert a range of values to the index.

remove(value_type const &)

Remove a value from the container.

remove(Iterator, Iterator)

Remove a range of values from the container.

remove(Range const &)

Remove a range of values from the container.

const

query(Predicates const &, OutIter)

Finds values meeting passed predicates e.g. nearest to some Point and/or intersecting some Box.

const

qbegin(Predicates const &)

Returns the query iterator pointing at the begin of the query range.

const

qend()

Returns the query iterator pointing at the end of the query range.

const

size()

Returns the number of stored values.

const

empty()

Query if the container is empty.

clear()

Removes all values stored in the container.

const

bounds()

Returns the box able to contain all values stored in the container.

const

count(ValueOrIndexable const &)

Count Values or Indexables stored in the container.

const

parameters()

Returns parameters.

const

indexable_get()

Returns function retrieving Indexable from Value.

const

value_eq()

Returns function comparing Values.

const

get_allocator()

Returns allocator used by the rtree.


PrevUpHomeNext