A nearest neighbors datastructure that uses linear search. More...
#include <hpp/fcl/knn/nearest_neighbors_sqrtapprox.h>
Public Member Functions | |
NearestNeighborsSqrtApprox (void) | |
virtual | ~NearestNeighborsSqrtApprox (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... | |
![]() | |
NearestNeighborsLinear (void) | |
virtual | ~NearestNeighborsLinear (void) |
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... | |
![]() | |
NearestNeighbors (void) | |
virtual | ~NearestNeighbors (void) |
virtual void | setDistanceFunction (const DistanceFunction &distFun) |
Set the distance function to use. More... | |
const DistanceFunction & | getDistanceFunction (void) const |
Get the distance function used. More... | |
Protected Member Functions | |
void | updateCheckCount (void) |
The maximum number of checks to perform when searching for a nearest neighbor. More... | |
Protected Attributes | |
std::size_t | checks_ |
The number of checks to be performed when looking for a nearest neighbor. More... | |
std::size_t | offset_ |
The offset to start checking at (between 0 and checks_) More... | |
![]() | |
std::vector< _T > | data_ |
The data elements stored in this structure. More... | |
![]() | |
DistanceFunction | distFun_ |
The used distance function. More... | |
Additional Inherited Members | |
![]() | |
typedef boost::function < double(const _T &, const _T &)> | DistanceFunction |
The definition of a distance function. More... | |
A nearest neighbors datastructure that uses linear search.
The linear search is done over sqrt(n) elements only. (Every sqrt(n) elements are skipped).
|
inline |
|
inlinevirtual |
|
inlinevirtual |
Add an element to the datastructure.
Reimplemented from fcl::NearestNeighborsLinear< _T >.
References fcl::NearestNeighborsLinear< _T >::add(), and fcl::NearestNeighborsSqrtApprox< _T >::updateCheckCount().
|
inlinevirtual |
Add a vector of points.
Reimplemented from fcl::NearestNeighborsLinear< _T >.
References fcl::NearestNeighborsLinear< _T >::add(), and fcl::NearestNeighborsSqrtApprox< _T >::updateCheckCount().
|
inlinevirtual |
Clear the datastructure.
Reimplemented from fcl::NearestNeighborsLinear< _T >.
References fcl::NearestNeighborsSqrtApprox< _T >::checks_, fcl::NearestNeighborsLinear< _T >::clear(), and fcl::NearestNeighborsSqrtApprox< _T >::offset_.
|
inlinevirtual |
Get the nearest neighbor of a point.
Reimplemented from fcl::NearestNeighborsLinear< _T >.
References fcl::NearestNeighborsSqrtApprox< _T >::checks_, fcl::distance(), fcl::NearestNeighbors< _T >::distFun_, fcl::NearestNeighborsSqrtApprox< _T >::offset_, and fcl::NearestNeighborsLinear< _T >::size().
|
inlinevirtual |
Remove an element from the datastructure.
Reimplemented from fcl::NearestNeighborsLinear< _T >.
References fcl::NearestNeighborsLinear< _T >::remove(), and fcl::NearestNeighborsSqrtApprox< _T >::updateCheckCount().
|
inlineprotected |
The maximum number of checks to perform when searching for a nearest neighbor.
References fcl::NearestNeighborsSqrtApprox< _T >::checks_, and fcl::NearestNeighborsLinear< _T >::size().
Referenced by fcl::NearestNeighborsSqrtApprox< _T >::add(), and fcl::NearestNeighborsSqrtApprox< _T >::remove().
|
protected |
The number of checks to be performed when looking for a nearest neighbor.
Referenced by fcl::NearestNeighborsSqrtApprox< _T >::clear(), fcl::NearestNeighborsSqrtApprox< _T >::nearest(), and fcl::NearestNeighborsSqrtApprox< _T >::updateCheckCount().
|
mutableprotected |
The offset to start checking at (between 0 and checks_)
Referenced by fcl::NearestNeighborsSqrtApprox< _T >::clear(), and fcl::NearestNeighborsSqrtApprox< _T >::nearest().