#include <KdTree.h>
Public Member Functions | |
void | Build (float **ppfValues, int nLow, int nHigh, int nBucketSize, int nDimensions, int nUserDataSize) |
CKdTree (int nMaximumNumberOfNodes=10000) | |
void | NearestNeighbor (const float *pQuery, float &fError, float *&pfNN, int nMaximumLeavesToVisit=-1) |
void | NearestNeighbor (const float *pQuery, float &fError, CKdPriorityQueue *&pNNList, int nMaximumLeavesToVisit=-1) |
void | NearestNeighborBBF (const float *pfQuery, float &fError, float *&pfNN, int nMaximumLeavesToVisit=-1) |
void | NearestNeighborBBF (const float *pQuery, float &fError, CKdPriorityQueue *&pNNList, int nMaximumLeavesToVisit=-1) |
~CKdTree () | |
Private Member Functions | |
CKdTreeNode * | BuildRecursive (float **ppfValues, int nLow, int nHigh, KdBoundingBox *pCurrentBoundingBox, int nCurrentDepth) |
void | Dispose () |
void | DisposeRecursive (CKdTreeNode *pNode) |
void | NearestNeighborRecursive (CKdTreeNode *pNode, const float *pQuery) |
void | NearestNeighborRecursiveBBF (CKdTreeNode *pNode, const float *pQuery, float fDistanceBB) |
Private Attributes | |
KdBoundingBox | m_EnclosingBox |
float | m_fCurrentMinDistance |
int | m_nBucketSize |
int | m_nDimensions |
int | m_nLeaves |
int | m_nMaximumLeavesToVisit |
int | m_nTotalVectorSize |
int | m_nUserDataSize |
float * | m_pNearestNeighbor |
CKdPriorityQueue * | m_pNearestNeighborList |
CKdPriorityQueue * | m_pNearestNeighborList_ |
CKdPriorityQueue * | m_pNodeListBBF |
CKdTreeNode * | m_pRoot |
CKdTree::CKdTree | ( | int | nMaximumNumberOfNodes = 10000 | ) |
Definition at line 90 of file KdTree.cpp.
Definition at line 108 of file KdTree.cpp.
void CKdTree::Build | ( | float ** | ppfValues, |
int | nLow, | ||
int | nHigh, | ||
int | nBucketSize, | ||
int | nDimensions, | ||
int | nUserDataSize | ||
) |
Definition at line 122 of file KdTree.cpp.
CKdTreeNode * CKdTree::BuildRecursive | ( | float ** | ppfValues, |
int | nLow, | ||
int | nHigh, | ||
KdBoundingBox * | pCurrentBoundingBox, | ||
int | nCurrentDepth | ||
) | [private] |
Definition at line 138 of file KdTree.cpp.
void CKdTree::Dispose | ( | ) | [private] |
Definition at line 231 of file KdTree.cpp.
void CKdTree::DisposeRecursive | ( | CKdTreeNode * | pNode | ) | [private] |
Definition at line 243 of file KdTree.cpp.
void CKdTree::NearestNeighbor | ( | const float * | pQuery, |
float & | fError, | ||
float *& | pfNN, | ||
int | nMaximumLeavesToVisit = -1 |
||
) |
Definition at line 260 of file KdTree.cpp.
void CKdTree::NearestNeighbor | ( | const float * | pQuery, |
float & | fError, | ||
CKdPriorityQueue *& | pNNList, | ||
int | nMaximumLeavesToVisit = -1 |
||
) |
Definition at line 297 of file KdTree.cpp.
void CKdTree::NearestNeighborBBF | ( | const float * | pfQuery, |
float & | fError, | ||
float *& | pfNN, | ||
int | nMaximumLeavesToVisit = -1 |
||
) |
Definition at line 276 of file KdTree.cpp.
void CKdTree::NearestNeighborBBF | ( | const float * | pQuery, |
float & | fError, | ||
CKdPriorityQueue *& | pNNList, | ||
int | nMaximumLeavesToVisit = -1 |
||
) |
Definition at line 315 of file KdTree.cpp.
void CKdTree::NearestNeighborRecursive | ( | CKdTreeNode * | pNode, |
const float * | pQuery | ||
) | [private] |
Definition at line 338 of file KdTree.cpp.
void CKdTree::NearestNeighborRecursiveBBF | ( | CKdTreeNode * | pNode, |
const float * | pQuery, | ||
float | fDistanceBB | ||
) | [private] |
Definition at line 386 of file KdTree.cpp.
KdBoundingBox CKdTree::m_EnclosingBox [private] |
float CKdTree::m_fCurrentMinDistance [private] |
int CKdTree::m_nBucketSize [private] |
int CKdTree::m_nDimensions [private] |
int CKdTree::m_nLeaves [private] |
int CKdTree::m_nMaximumLeavesToVisit [private] |
int CKdTree::m_nTotalVectorSize [private] |
int CKdTree::m_nUserDataSize [private] |
float* CKdTree::m_pNearestNeighbor [private] |
CKdPriorityQueue* CKdTree::m_pNearestNeighborList [private] |
CKdPriorityQueue* CKdTree::m_pNearestNeighborList_ [private] |
CKdPriorityQueue* CKdTree::m_pNodeListBBF [private] |
CKdTreeNode* CKdTree::m_pRoot [private] |