A class that represents an Kd-tree node. More...
#include <Node.h>
Public Types | |
typedef NodeData | kdData |
Export data type. More... | |
typedef NodeDataItem | kdDataItem |
Export data item type. More... | |
typedef NodeDataTag | kdDataTag |
Export data type. More... | |
typedef NodeKey | kdKey |
Export key type. More... | |
Public Member Functions | |
std::size_t | descendants () const |
It counts the number of nodes below this. More... | |
NodeData & | getData () |
It returns a reference to data node. More... | |
const NodeKey & | getKey () const |
It returns a reference to node key. More... | |
Node * | getLeft () const |
It gets the left child. More... | |
Node * | getRight () const |
It gets the right child. More... | |
bool | hasLeft () const |
It checks if this node has a left child. More... | |
bool | hasRight () const |
It checks if this node has a right child. More... | |
bool | isLeaf () const |
It returns true if this node is a leaf node. More... | |
Node (const NodeKey &k) | |
Constructor. More... | |
void | setData (const NodeData &data) |
It sets the data in the node. More... | |
void | setKey (const NodeKey &k) |
It sets the key to the node. More... | |
void | setLeft (Node *node) |
It sets the left child pointer. More... | |
void | setRight (Node *node) |
It sets the right child pointer. More... | |
Protected Attributes | |
NodeData | m_data |
The data stored in this record. More... | |
NodeKey | m_key |
The key used to access this record. More... | |
Node * | m_left |
Pointer to the left sub-tree. More... | |
Node * | m_right |
Pointer to the right sub-tree. More... | |
Private Member Functions | |
Node (const Node &rhs) | |
No copy constructor allowed. More... | |
Node & | operator= (const Node &rhs) |
No assignment operator allowed. More... | |
A class that represents an Kd-tree node.
Each node contains a pointer to its left and right subtree (NULL if it is not set), one key used for insertion of the data into the tree.
typedef NodeData te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::kdData |
typedef NodeDataItem te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::kdDataItem |
typedef NodeDataTag te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::kdDataTag |
typedef NodeKey te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::kdKey |
|
inline |
|
private |
No copy constructor allowed.
rhs | The other node. |
|
inline |
It counts the number of nodes below this.
Definition at line 152 of file Node.h.
References te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::descendants(), te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::getLeft(), te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::getRight(), te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::hasLeft(), and te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::hasRight().
Referenced by te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::descendants().
|
inline |
It returns a reference to data node.
Definition at line 104 of file Node.h.
References te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::m_data.
|
inline |
It returns a reference to node key.
Definition at line 92 of file Node.h.
References te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::m_key.
|
inline |
It gets the left child.
Definition at line 122 of file Node.h.
References te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::m_left.
Referenced by te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::descendants().
|
inline |
It gets the right child.
Definition at line 128 of file Node.h.
References te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::m_right.
Referenced by te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::descendants().
|
inline |
It checks if this node has a left child.
Definition at line 134 of file Node.h.
References te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::m_left.
Referenced by te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::descendants(), and te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::isLeaf().
|
inline |
It checks if this node has a right child.
Definition at line 140 of file Node.h.
References te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::m_right.
Referenced by te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::descendants(), and te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::isLeaf().
|
inline |
It returns true if this node is a leaf node.
Definition at line 146 of file Node.h.
References te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::hasLeft(), and te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::hasRight().
|
private |
No assignment operator allowed.
rhs | The other node. |
|
inline |
It sets the data in the node.
Definition at line 98 of file Node.h.
References te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::m_data.
|
inline |
It sets the key to the node.
Definition at line 86 of file Node.h.
References te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::m_key.
|
inline |
It sets the left child pointer.
Definition at line 110 of file Node.h.
References te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::m_left.
|
inline |
It sets the right child pointer.
Definition at line 116 of file Node.h.
References te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::m_right.
|
protected |
The data stored in this record.
Definition at line 187 of file Node.h.
Referenced by te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::getData(), and te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::setData().
|
protected |
The key used to access this record.
Definition at line 186 of file Node.h.
Referenced by te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::getKey(), and te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::setKey().
|
protected |
Pointer to the left sub-tree.
Definition at line 188 of file Node.h.
Referenced by te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::getLeft(), te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::hasLeft(), and te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::setLeft().
|
protected |
Pointer to the right sub-tree.
Definition at line 189 of file Node.h.
Referenced by te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::getRight(), te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::hasRight(), and te::sam::kdtree::Node< NodeKey, NodeData, NodeDataItem, NodeDataTag >::setRight().