37 #ifndef OMPL_DATASTRUCTURES_NEAREST_NEIGHBORS_
38 #define OMPL_DATASTRUCTURES_NEAREST_NEIGHBORS_
41 #include <boost/bind.hpp>
42 #include <boost/function.hpp>
43 #include <ompl/base/StateSpace.h>
78 virtual void clear(
void) = 0;
81 virtual void add(
const _T &data) = 0;
84 virtual void add(
const std::vector<_T> &data)
86 for (
typename std::vector<_T>::const_iterator elt = data.begin() ; elt != data.end() ; ++elt)
91 virtual bool remove(
const _T &data) = 0;
94 virtual _T
nearest(
const _T &data)
const = 0;
101 virtual void nearestK(
const _T &data, std::size_t k, std::vector<_T> &nbh)
const = 0;
108 virtual void nearestR(
const _T &data,
double radius, std::vector<_T> &nbh)
const = 0;
111 virtual std::size_t
size(
void)
const = 0;
114 virtual void list(std::vector<_T> &data)
const = 0;
boost::function< double(const _T &, const _T &)> DistanceFunction
The definition of a distance function.
virtual void nearestR(const _T &data, double radius, std::vector< _T > &nbh) const =0
Get the nearest neighbors of a point, within a specified radius.
virtual void add(const std::vector< _T > &data)
Add a vector of points.
const DistanceFunction & getDistanceFunction(void) const
Get the distance function used.
virtual void nearestK(const _T &data, std::size_t k, std::vector< _T > &nbh) const =0
Get the k-nearest neighbors of a point.
virtual void setDistanceFunction(const DistanceFunction &distFun)
Set the distance function to use.
DistanceFunction distFun_
The used distance function.
virtual _T nearest(const _T &data) const =0
Get the nearest neighbor of a point.
Abstract representation of a container that can perform nearest neighbors queries.
virtual void add(const _T &data)=0
Add an element to the datastructure.
virtual void list(std::vector< _T > &data) const =0
Get all the elements in the datastructure.
virtual std::size_t size(void) const =0
Get the number of elements in the datastructure.
virtual void clear(void)=0
Clear the datastructure.