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

Protected Attributes

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

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.
 

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: