ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
flann::NNIndex< Distance > Class Template Referenceabstract

#include <nn_index.h>

Inheritance diagram for flann::NNIndex< Distance >:
Collaboration diagram for flann::NNIndex< Distance >:

Public Types

typedef Distance::ElementType ElementType
 
typedef Distance::ResultType DistanceType
 

Public Member Functions

 NNIndex (Distance d)
 
 NNIndex (const IndexParams &params, Distance d)
 
 NNIndex (const NNIndex &other)
 
virtual ~NNIndex ()
 
virtual NNIndexclone () const =0
 
virtual void buildIndex ()
 
virtual void buildIndex (const Matrix< ElementType > &dataset)
 
virtual void addPoints (const Matrix< ElementType > &points, float rebuild_threshold=2)
 Incrementally add points to the index. More...
 
virtual void removePoint (size_t id)
 
virtual ElementTypegetPoint (size_t id)
 
size_t size () const
 
size_t veclen () const
 
IndexParams getParameters () const
 
template<typename Archive >
void serialize (Archive &ar)
 
virtual int knnSearch (const Matrix< ElementType > &queries, Matrix< size_t > &indices, Matrix< DistanceType > &dists, size_t knn, const SearchParams &params) const
 Perform k-nearest neighbor search. More...
 
int knnSearch (const Matrix< ElementType > &queries, Matrix< int > &indices, Matrix< DistanceType > &dists, size_t knn, const SearchParams &params) const
 
int knnSearch (const Matrix< ElementType > &queries, std::vector< std::vector< size_t > > &indices, std::vector< std::vector< DistanceType > > &dists, size_t knn, const SearchParams &params) const
 Perform k-nearest neighbor search. More...
 
int knnSearch (const Matrix< ElementType > &queries, std::vector< std::vector< int > > &indices, std::vector< std::vector< DistanceType > > &dists, size_t knn, const SearchParams &params) const
 
int radiusSearch (const Matrix< ElementType > &queries, Matrix< size_t > &indices, Matrix< DistanceType > &dists, float radius, const SearchParams &params) const
 Perform radius search. More...
 
int radiusSearch (const Matrix< ElementType > &queries, Matrix< int > &indices, Matrix< DistanceType > &dists, float radius, const SearchParams &params) const
 
int radiusSearch (const Matrix< ElementType > &queries, std::vector< std::vector< size_t > > &indices, std::vector< std::vector< DistanceType > > &dists, float radius, const SearchParams &params) const
 Perform radius search. More...
 
int radiusSearch (const Matrix< ElementType > &queries, std::vector< std::vector< int > > &indices, std::vector< std::vector< DistanceType > > &dists, float radius, const SearchParams &params) const
 
virtual void findNeighbors (ResultSet< DistanceType > &result, const ElementType *vec, const SearchParams &searchParams) const =0
 
- Public Member Functions inherited from flann::IndexBase
virtual ~IndexBase ()
 
virtual flann_algorithm_t getType () const =0
 
virtual int usedMemory () const =0
 
virtual void loadIndex (FILE *stream)=0
 
virtual void saveIndex (FILE *stream)=0
 

Protected Member Functions

virtual void freeIndex ()=0
 
virtual void buildIndexImpl ()=0
 
size_t id_to_index (size_t id)
 
void indices_to_ids (const size_t *in, size_t *out, size_t size) const
 
void setDataset (const Matrix< ElementType > &dataset)
 
void extendDataset (const Matrix< ElementType > &new_points)
 
void cleanRemovedPoints ()
 
void swap (NNIndex &other)
 

Protected Attributes

Distance distance_
 
size_t last_id_
 
size_t size_
 
size_t size_at_build_
 
size_t veclen_
 
IndexParams index_params_
 
bool removed_
 
DynamicBitset removed_points_
 
size_t removed_count_
 
std::vector< size_t > ids_
 
std::vector< ElementType * > points_
 
ElementTypedata_ptr_
 

Detailed Description

template<typename Distance>
class flann::NNIndex< Distance >

Nearest-neighbour index base class

Definition at line 73 of file nn_index.h.

Member Typedef Documentation

◆ DistanceType

template<typename Distance >
typedef Distance::ResultType flann::NNIndex< Distance >::DistanceType

Definition at line 77 of file nn_index.h.

◆ ElementType

template<typename Distance >
typedef Distance::ElementType flann::NNIndex< Distance >::ElementType

Definition at line 76 of file nn_index.h.

Constructor & Destructor Documentation

◆ NNIndex() [1/3]

template<typename Distance >
flann::NNIndex< Distance >::NNIndex ( Distance  d)
inline

Definition at line 79 of file nn_index.h.

◆ NNIndex() [2/3]

template<typename Distance >
flann::NNIndex< Distance >::NNIndex ( const IndexParams params,
Distance  d 
)
inline

Definition at line 84 of file nn_index.h.

◆ NNIndex() [3/3]

◆ ~NNIndex()

template<typename Distance >
virtual flann::NNIndex< Distance >::~NNIndex ( )
inlinevirtual

Definition at line 112 of file nn_index.h.

References flann::NNIndex< Distance >::data_ptr_.

Member Function Documentation

◆ addPoints()

template<typename Distance >
virtual void flann::NNIndex< Distance >::addPoints ( const Matrix< ElementType > &  points,
float  rebuild_threshold = 2 
)
inlinevirtual

◆ buildIndex() [1/2]

◆ buildIndex() [2/2]

template<typename Distance >
virtual void flann::NNIndex< Distance >::buildIndex ( const Matrix< ElementType > &  dataset)
inlinevirtual

Builds the index using the specified dataset

Parameters
datasetthe dataset to use

Reimplemented in flann::AutotunedIndex< Distance >.

Definition at line 141 of file nn_index.h.

References flann::NNIndex< Distance >::buildIndex(), and flann::NNIndex< Distance >::setDataset().

◆ buildIndexImpl()

◆ cleanRemovedPoints()

◆ clone()

◆ extendDataset()

◆ findNeighbors()

◆ freeIndex()

◆ getParameters()

template<typename Distance >
IndexParams flann::NNIndex< Distance >::getParameters ( ) const
inlinevirtual

Returns the parameters used by the index.

Returns
The index parameters

Implements flann::IndexBase.

Definition at line 219 of file nn_index.h.

References flann::NNIndex< Distance >::index_params_.

Referenced by flann::Index< Distance >::getParameters().

◆ getPoint()

template<typename Distance >
virtual ElementType* flann::NNIndex< Distance >::getPoint ( size_t  id)
inlinevirtual

Get point with specific id

Parameters
id
Returns

Reimplemented in flann::KDTreeCuda3dIndex< Distance >.

Definition at line 187 of file nn_index.h.

References flann::NNIndex< Distance >::id_to_index(), NULL, and flann::NNIndex< Distance >::points_.

Referenced by flann::Index< Distance >::getPoint().

◆ id_to_index()

template<typename Distance >
size_t flann::NNIndex< Distance >::id_to_index ( size_t  id)
inlineprotected

◆ indices_to_ids()

template<typename Distance >
void flann::NNIndex< Distance >::indices_to_ids ( const size_t *  in,
size_t *  out,
size_t  size 
) const
inlineprotected

◆ knnSearch() [1/4]

template<typename Distance >
int flann::NNIndex< Distance >::knnSearch ( const Matrix< ElementType > &  queries,
Matrix< int > &  indices,
Matrix< DistanceType > &  dists,
size_t  knn,
const SearchParams params 
) const
inline
Parameters
queries
indices
dists
knn
params
Returns

Definition at line 368 of file nn_index.h.

References flann::Matrix_::cols, flann::NNIndex< Distance >::knnSearch(), params, flann::Matrix< T >::ptr(), result, and flann::Matrix_::rows.

◆ knnSearch() [2/4]

template<typename Distance >
virtual int flann::NNIndex< Distance >::knnSearch ( const Matrix< ElementType > &  queries,
Matrix< size_t > &  indices,
Matrix< DistanceType > &  dists,
size_t  knn,
const SearchParams params 
) const
inlinevirtual

◆ knnSearch() [3/4]

template<typename Distance >
int flann::NNIndex< Distance >::knnSearch ( const Matrix< ElementType > &  queries,
std::vector< std::vector< int > > &  indices,
std::vector< std::vector< DistanceType > > &  dists,
size_t  knn,
const SearchParams params 
) const
inline
Parameters
queries
indices
dists
knn
params
Returns

Definition at line 466 of file nn_index.h.

References flann::NNIndex< Distance >::knnSearch(), params, and result.

◆ knnSearch() [4/4]

template<typename Distance >
int flann::NNIndex< Distance >::knnSearch ( const Matrix< ElementType > &  queries,
std::vector< std::vector< size_t > > &  indices,
std::vector< std::vector< DistanceType > > &  dists,
size_t  knn,
const SearchParams params 
) const
inline

Perform k-nearest neighbor search.

Parameters
[in]queriesThe query points for which to find the nearest neighbors
[out]indicesThe indices of the nearest neighbors found
[out]distsDistances to the nearest neighbors found
[in]knnNumber of nearest neighbors to return
[in]paramsSearch parameters

Definition at line 395 of file nn_index.h.

References flann::KNNSimpleResultSet< DistanceType >::clear(), flann::KNNResultSet2< DistanceType >::clear(), flann::Matrix_::cols, flann::KNNSimpleResultSet< DistanceType >::copy(), flann::KNNResultSet2< DistanceType >::copy(), count, flann::NNIndex< Distance >::findNeighbors(), flann::FLANN_True, flann::FLANN_Undefined, flann::NNIndex< Distance >::indices_to_ids(), KNN_HEAP_THRESHOLD, min(), params, flann::Matrix_::rows, flann::KNNSimpleResultSet< DistanceType >::size(), flann::KNNResultSet2< DistanceType >::size(), and flann::NNIndex< Distance >::veclen().

◆ radiusSearch() [1/4]

template<typename Distance >
int flann::NNIndex< Distance >::radiusSearch ( const Matrix< ElementType > &  queries,
Matrix< int > &  indices,
Matrix< DistanceType > &  dists,
float  radius,
const SearchParams params 
) const
inline
Parameters
queries
indices
dists
radius
params
Returns

Definition at line 574 of file nn_index.h.

References flann::Matrix_::cols, params, flann::Matrix< T >::ptr(), flann::NNIndex< Distance >::radiusSearch(), result, and flann::Matrix_::rows.

◆ radiusSearch() [2/4]

template<typename Distance >
int flann::NNIndex< Distance >::radiusSearch ( const Matrix< ElementType > &  queries,
Matrix< size_t > &  indices,
Matrix< DistanceType > &  dists,
float  radius,
const SearchParams params 
) const
inline

◆ radiusSearch() [3/4]

template<typename Distance >
int flann::NNIndex< Distance >::radiusSearch ( const Matrix< ElementType > &  queries,
std::vector< std::vector< int > > &  indices,
std::vector< std::vector< DistanceType > > &  dists,
float  radius,
const SearchParams params 
) const
inline
Parameters
queries
indices
dists
radius
params
Returns

Definition at line 680 of file nn_index.h.

References params, flann::NNIndex< Distance >::radiusSearch(), and result.

◆ radiusSearch() [4/4]

template<typename Distance >
int flann::NNIndex< Distance >::radiusSearch ( const Matrix< ElementType > &  queries,
std::vector< std::vector< size_t > > &  indices,
std::vector< std::vector< DistanceType > > &  dists,
float  radius,
const SearchParams params 
) const
inline

◆ removePoint()

◆ serialize()

◆ setDataset()

◆ size()

template<typename Distance >
size_t flann::NNIndex< Distance >::size ( ) const
inlinevirtual
Returns
number of features in this index.

Implements flann::IndexBase.

Definition at line 201 of file nn_index.h.

References flann::NNIndex< Distance >::removed_count_, and flann::NNIndex< Distance >::size_.

Referenced by flann::NNIndex< Distance >::radiusSearch(), and flann::Index< Distance >::size().

◆ swap()

◆ veclen()

template<typename Distance >
size_t flann::NNIndex< Distance >::veclen ( ) const
inlinevirtual
Returns
The dimensionality of the features in this index.

Implements flann::IndexBase.

Definition at line 209 of file nn_index.h.

References flann::NNIndex< Distance >::veclen_.

Referenced by flann::NNIndex< Distance >::knnSearch(), flann::NNIndex< Distance >::radiusSearch(), and flann::Index< Distance >::veclen().

Member Data Documentation

◆ data_ptr_

template<typename Distance >
ElementType* flann::NNIndex< Distance >::data_ptr_
protected

Pointer to dataset memory if allocated by this index, otherwise NULL

Definition at line 881 of file nn_index.h.

Referenced by flann::NNIndex< Distance >::NNIndex(), flann::NNIndex< Distance >::serialize(), flann::NNIndex< Distance >::swap(), and flann::NNIndex< Distance >::~NNIndex().

◆ distance_

◆ ids_

◆ index_params_

◆ last_id_

template<typename Distance >
size_t flann::NNIndex< Distance >::last_id_
protected

Each index point has an associated ID. IDs are assigned sequentially in increasing order. This indicates the ID assigned to the last point added to the index.

Definition at line 831 of file nn_index.h.

Referenced by flann::NNIndex< Distance >::extendDataset(), flann::NNIndex< Distance >::removePoint(), flann::NNIndex< Distance >::serialize(), flann::NNIndex< Distance >::setDataset(), and flann::NNIndex< Distance >::swap().

◆ points_

◆ removed_

◆ removed_count_

◆ removed_points_

◆ size_

◆ size_at_build_

◆ veclen_


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