Loading...
Searching...
No Matches
ompl::NearestNeighborsLinear< _T > Class Template Reference

A nearest neighbors datastructure that uses linear search. More...

#include <ompl/datastructures/NearestNeighborsLinear.h>

Inheritance diagram for ompl::NearestNeighborsLinear< _T >:

Public Member Functions

void clear () override
 Clear the datastructure. More...
 
bool reportsSortedResults () const override
 Return true if the solutions reported by this data structure are sorted, when calling nearestK / nearestR. More...
 
void add (const _T &data) override
 Add an element to the datastructure. More...
 
void add (const std::vector< _T > &data) override
 Add a vector of points. More...
 
bool remove (const _T &data) override
 Remove an element from the datastructure. More...
 
_T nearest (const _T &data) const override
 Get the nearest neighbor of a point. More...
 
void nearestK (const _T &data, std::size_t k, std::vector< _T > &nbh) const override
 Return the k nearest neighbors in sorted order. More...
 
void nearestR (const _T &data, double radius, std::vector< _T > &nbh) const override
 Return the nearest neighbors within distance radius in sorted order. More...
 
std::size_t size () const override
 Get the number of elements in the datastructure. More...
 
void list (std::vector< _T > &data) const override
 Get all the elements in the datastructure. More...
 
- Public Member Functions inherited from ompl::NearestNeighbors< _T >
virtual void setDistanceFunction (const DistanceFunction &distFun)
 Set the distance function to use. More...
 
const DistanceFunctiongetDistanceFunction () const
 Get the distance function used. More...
 
virtual bool reportsSortedResults () const =0
 Return true if the solutions reported by this data structure are sorted, when calling nearestK / nearestR. More...
 
virtual void clear ()=0
 Clear the datastructure. More...
 
virtual void add (const _T &data)=0
 Add an element to the datastructure. More...
 
virtual void add (const std::vector< _T > &data)
 Add a vector of points. More...
 
virtual bool remove (const _T &data)=0
 Remove an element from the datastructure. More...
 
virtual _T nearest (const _T &data) const =0
 Get the nearest neighbor of a point. More...
 
virtual void nearestK (const _T &data, std::size_t k, std::vector< _T > &nbh) const =0
 Get the k-nearest neighbors of a point. More...
 
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. More...
 
virtual std::size_t size () const =0
 Get the number of elements in the datastructure. More...
 
virtual void list (std::vector< _T > &data) const =0
 Get all the elements in the datastructure. More...
 

Protected Attributes

std::vector< _T > data_
 The data elements stored in this structure. More...
 
- Protected Attributes inherited from ompl::NearestNeighbors< _T >
DistanceFunction distFun_
 The used distance function. More...
 

Additional Inherited Members

- Public Types inherited from ompl::NearestNeighbors< _T >
using DistanceFunction = std::function< double(const _T &, const _T &)>
 The definition of a distance function. More...
 

Detailed Description

template<typename _T>
class ompl::NearestNeighborsLinear< _T >

A nearest neighbors datastructure that uses linear search.

  • Search for nearest neighbor is O(n).
  • Search for k-nearest neighbors is O(n log(k)).
  • Search for neighbors within a range is O(n log(n)).
  • Adding an element to the datastructure is O(1).
  • Removing an element from the datastructure O(n).

Definition at line 56 of file NearestNeighborsLinear.h.

Constructor & Destructor Documentation

◆ NearestNeighborsLinear()

template<typename _T >
ompl::NearestNeighborsLinear< _T >::NearestNeighborsLinear ( )
inline

Definition at line 59 of file NearestNeighborsLinear.h.

Member Function Documentation

◆ add() [1/2]

template<typename _T >
void ompl::NearestNeighborsLinear< _T >::add ( const _T &  data)
inlineoverridevirtual

Add an element to the datastructure.

Implements ompl::NearestNeighbors< _T >.

Reimplemented in ompl::NearestNeighborsSqrtApprox< _T >.

Definition at line 75 of file NearestNeighborsLinear.h.

◆ add() [2/2]

template<typename _T >
void ompl::NearestNeighborsLinear< _T >::add ( const std::vector< _T > &  data)
inlineoverridevirtual

Add a vector of points.

Reimplemented from ompl::NearestNeighbors< _T >.

Reimplemented in ompl::NearestNeighborsSqrtApprox< _T >.

Definition at line 80 of file NearestNeighborsLinear.h.

◆ clear()

template<typename _T >
void ompl::NearestNeighborsLinear< _T >::clear ( )
inlineoverridevirtual

Clear the datastructure.

Implements ompl::NearestNeighbors< _T >.

Reimplemented in ompl::NearestNeighborsSqrtApprox< _T >.

Definition at line 65 of file NearestNeighborsLinear.h.

◆ list()

template<typename _T >
void ompl::NearestNeighborsLinear< _T >::list ( std::vector< _T > &  data) const
inlineoverridevirtual

Get all the elements in the datastructure.

Implements ompl::NearestNeighbors< _T >.

Definition at line 149 of file NearestNeighborsLinear.h.

◆ nearest()

template<typename _T >
_T ompl::NearestNeighborsLinear< _T >::nearest ( const _T &  data) const
inlineoverridevirtual

Get the nearest neighbor of a point.

Implements ompl::NearestNeighbors< _T >.

Reimplemented in ompl::NearestNeighborsSqrtApprox< _T >.

Definition at line 98 of file NearestNeighborsLinear.h.

◆ nearestK()

template<typename _T >
void ompl::NearestNeighborsLinear< _T >::nearestK ( const _T &  data,
std::size_t  k,
std::vector< _T > &  nbh 
) const
inlineoverridevirtual

Return the k nearest neighbors in sorted order.

Implements ompl::NearestNeighbors< _T >.

Definition at line 119 of file NearestNeighborsLinear.h.

◆ nearestR()

template<typename _T >
void ompl::NearestNeighborsLinear< _T >::nearestR ( const _T &  data,
double  radius,
std::vector< _T > &  nbh 
) const
inlineoverridevirtual

Return the nearest neighbors within distance radius in sorted order.

Implements ompl::NearestNeighbors< _T >.

Definition at line 135 of file NearestNeighborsLinear.h.

◆ remove()

template<typename _T >
bool ompl::NearestNeighborsLinear< _T >::remove ( const _T &  data)
inlineoverridevirtual

Remove an element from the datastructure.

Implements ompl::NearestNeighbors< _T >.

Reimplemented in ompl::NearestNeighborsSqrtApprox< _T >.

Definition at line 86 of file NearestNeighborsLinear.h.

◆ reportsSortedResults()

template<typename _T >
bool ompl::NearestNeighborsLinear< _T >::reportsSortedResults ( ) const
inlineoverridevirtual

Return true if the solutions reported by this data structure are sorted, when calling nearestK / nearestR.

Implements ompl::NearestNeighbors< _T >.

Definition at line 70 of file NearestNeighborsLinear.h.

◆ size()

template<typename _T >
std::size_t ompl::NearestNeighborsLinear< _T >::size ( ) const
inlineoverridevirtual

Get the number of elements in the datastructure.

Implements ompl::NearestNeighbors< _T >.

Definition at line 144 of file NearestNeighborsLinear.h.

Member Data Documentation

◆ data_

template<typename _T >
std::vector<_T> ompl::NearestNeighborsLinear< _T >::data_
protected

The data elements stored in this structure.

Definition at line 156 of file NearestNeighborsLinear.h.


The documentation for this class was generated from the following file: