All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fcl::NearestNeighborsLinear< _T > Class Template Reference

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

#include <hpp/fcl/knn/nearest_neighbors_linear.h>

Inheritance diagram for fcl::NearestNeighborsLinear< _T >:
Collaboration diagram for fcl::NearestNeighborsLinear< _T >:

Public Member Functions

 NearestNeighborsLinear (void)
 
virtual ~NearestNeighborsLinear (void)
 
virtual void clear (void)
 Clear the datastructure. More...
 
virtual void add (const _T &data)
 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)
 Remove an element from the datastructure. More...
 
virtual _T nearest (const _T &data) const
 Get the nearest neighbor of a point. More...
 
virtual void nearestK (const _T &data, std::size_t k, std::vector< _T > &nbh) const
 Get the k-nearest neighbors of a point. More...
 
virtual void nearestR (const _T &data, double radius, std::vector< _T > &nbh) const
 Get the nearest neighbors of a point, within a specified radius. More...
 
virtual std::size_t size (void) const
 Get the number of elements in the datastructure. More...
 
virtual void list (std::vector< _T > &data) const
 Get all the elements in the datastructure. More...
 
- Public Member Functions inherited from fcl::NearestNeighbors< _T >
 NearestNeighbors (void)
 
virtual ~NearestNeighbors (void)
 
virtual void setDistanceFunction (const DistanceFunction &distFun)
 Set the distance function to use. More...
 
const DistanceFunctiongetDistanceFunction (void) const
 Get the distance function used. More...
 

Protected Attributes

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

Additional Inherited Members

- Public Types inherited from fcl::NearestNeighbors< _T >
typedef boost::function
< double(const _T &, const _T &)> 
DistanceFunction
 The definition of a distance function. More...
 

Detailed Description

template<typename _T>
class fcl::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).

Constructor & Destructor Documentation

template<typename _T>
fcl::NearestNeighborsLinear< _T >::NearestNeighborsLinear ( void  )
inline
template<typename _T>
virtual fcl::NearestNeighborsLinear< _T >::~NearestNeighborsLinear ( void  )
inlinevirtual

Member Function Documentation

template<typename _T>
virtual void fcl::NearestNeighborsLinear< _T >::add ( const _T &  data)
inlinevirtual

Add an element to the datastructure.

Implements fcl::NearestNeighbors< _T >.

Reimplemented in fcl::NearestNeighborsSqrtApprox< _T >.

References fcl::NearestNeighborsLinear< _T >::data_.

Referenced by fcl::NearestNeighborsSqrtApprox< _T >::add().

template<typename _T>
virtual void fcl::NearestNeighborsLinear< _T >::add ( const std::vector< _T > &  data)
inlinevirtual

Add a vector of points.

Reimplemented from fcl::NearestNeighbors< _T >.

Reimplemented in fcl::NearestNeighborsSqrtApprox< _T >.

References fcl::NearestNeighborsLinear< _T >::data_.

template<typename _T>
virtual void fcl::NearestNeighborsLinear< _T >::clear ( void  )
inlinevirtual
template<typename _T>
virtual void fcl::NearestNeighborsLinear< _T >::list ( std::vector< _T > &  data) const
inlinevirtual

Get all the elements in the datastructure.

Implements fcl::NearestNeighbors< _T >.

References fcl::NearestNeighborsLinear< _T >::data_.

template<typename _T>
virtual _T fcl::NearestNeighborsLinear< _T >::nearest ( const _T &  data) const
inlinevirtual
template<typename _T>
virtual void fcl::NearestNeighborsLinear< _T >::nearestK ( const _T &  data,
std::size_t  k,
std::vector< _T > &  nbh 
) const
inlinevirtual

Get the k-nearest neighbors of a point.

Implements fcl::NearestNeighbors< _T >.

References fcl::NearestNeighborsLinear< _T >::data_.

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

Get the nearest neighbors of a point, within a specified radius.

Implements fcl::NearestNeighbors< _T >.

References fcl::NearestNeighborsLinear< _T >::data_.

template<typename _T>
virtual bool fcl::NearestNeighborsLinear< _T >::remove ( const _T &  data)
inlinevirtual

Remove an element from the datastructure.

Implements fcl::NearestNeighbors< _T >.

Reimplemented in fcl::NearestNeighborsSqrtApprox< _T >.

References fcl::NearestNeighborsLinear< _T >::data_.

Referenced by fcl::NearestNeighborsSqrtApprox< _T >::remove().

template<typename _T>
virtual std::size_t fcl::NearestNeighborsLinear< _T >::size ( void  ) const
inlinevirtual

Member Data Documentation