Classes | Public Member Functions | Protected Attributes
cvflann::UniqueResultSet< DistanceType > Class Template Reference

#include <result_set.h>

Inherits cvflann::ResultSet< DistanceType >.

Inherited by cvflann::KNNUniqueResultSet< DistanceType >, and cvflann::RadiusUniqueResultSet< DistanceType >.

List of all members.

Classes

struct  DistIndex

Public Member Functions

 UniqueResultSet ()
bool full () const
virtual void clear ()=0
virtual void copy (int *indices, DistanceType *dist, int n_neighbors=-1) const
virtual void sortAndCopy (int *indices, DistanceType *dist, int n_neighbors=-1) const
size_t size () const
DistanceType worstDist () const
virtual void addPoint (DistanceType dist, int index)=0

Protected Attributes

bool is_full_
DistanceType worst_distance_
std::set< DistIndexdist_indices_

Detailed Description

template<typename DistanceType>
class cvflann::UniqueResultSet< DistanceType >

Class that holds the k NN neighbors Faster than KNNResultSet as it uses a binary heap and does not maintain two arrays


Constructor & Destructor Documentation

template<typename DistanceType >
cvflann::UniqueResultSet< DistanceType >::UniqueResultSet ( )

Default cosntructor


Member Function Documentation

template<typename DistanceType >
bool cvflann::UniqueResultSet< DistanceType >::full ( ) const [virtual]

Check the status of the set

Returns:
true if we have k NN

Implements cvflann::ResultSet< DistanceType >.

Reimplemented in cvflann::RadiusUniqueResultSet< DistanceType >.

template<typename DistanceType >
virtual void cvflann::UniqueResultSet< DistanceType >::clear ( ) [pure virtual]
template<typename DistanceType >
virtual void cvflann::UniqueResultSet< DistanceType >::copy ( int *  indices,
DistanceType *  dist,
int  n_neighbors = -1 
) const [virtual]

Copy the set to two C arrays

Parameters:
indicespointer to a C array of indices
distpointer to a C array of distances
n_neighborsthe number of neighbors to copy
template<typename DistanceType >
virtual void cvflann::UniqueResultSet< DistanceType >::sortAndCopy ( int *  indices,
DistanceType *  dist,
int  n_neighbors = -1 
) const [virtual]

Copy the set to two C arrays but sort it according to the distance first

Parameters:
indicespointer to a C array of indices
distpointer to a C array of distances
n_neighborsthe number of neighbors to copy
template<typename DistanceType >
size_t cvflann::UniqueResultSet< DistanceType >::size ( ) const

The number of neighbors in the set

Returns:
template<typename DistanceType >
DistanceType cvflann::UniqueResultSet< DistanceType >::worstDist ( ) const [virtual]

The distance of the furthest neighbor If we don't have enough neighbors, it returns the max possible value

Returns:

Implements cvflann::ResultSet< DistanceType >.

Reimplemented in cvflann::RadiusUniqueResultSet< DistanceType >.

template<typename DistanceType>
virtual void cvflann::ResultSet< DistanceType >::addPoint ( DistanceType  dist,
int  index 
) [pure virtual, inherited]

Member Data Documentation

template<typename DistanceType >
bool cvflann::UniqueResultSet< DistanceType >::is_full_ [protected]

Flag to say if the set is full

template<typename DistanceType >
DistanceType cvflann::UniqueResultSet< DistanceType >::worst_distance_ [protected]

The worst distance found so far

template<typename DistanceType >
std::set<DistIndex> cvflann::UniqueResultSet< DistanceType >::dist_indices_ [protected]

The best candidates so far


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