#include <kdTree.h>
Classes | |
struct | HeapNode |
One element of the heap representing a node in the KDTree kd. More... | |
struct | HeapOrder |
Defines the order of heap - ascending according to getSE. More... | |
Public Member Functions | |
PointHeap (const KDTree &tree, const T *point_, bool checkNaNs) | |
Builds the heap from a KDTree tree and vector point_ (they've got to remain valid until the destruction of this instance). | |
bool | isEmpty () |
Returns whether the heap is empty ( !isEmpty() is needed for all other methods). | |
T | getTopSE () |
Returns the SE of the top node (always equals the SE of the next leaf). | |
template<bool CheckNaNs> | |
int | popLeaf (T maxSE) |
Removes a leaf, returns the matching vector's index, assumes it's safe to discard nodes further than maxSE . | |
Protected Member Functions | |
template<bool CheckNaNs> | |
void | makeTopLeaf (T maxSE) |
Divides the top nodes until there's a leaf on the top assumes it's safe to discard nodes further than maxSE . | |
Private Attributes | |
const KDTree & | kd |
Reference to the KDTree we operate on. | |
const T *const | point |
Pointer to the point we are trying to approach. | |
vector< HeapNode > | heap |
The current heap of the tree nodes. | |
BulkAllocator< T > | allocator |
The allocator for HeapNode::data. |
It returns vectors (their indices) in the order of ascending distance (SE) from a given fixed point. It can compute a lower bound of the SEs of the remaining vectors at any time.
Definition at line 144 of file kdTree.h.