te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem > Class Template Reference

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 NodeKey kdKey
 Export key type. More...
 

Public Member Functions

 AdaptativeNode (const double &k)
 Constructor. More...
 
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 char & getDiscriminator () const
 It returns a reference to discriminator. More...
 
const double & getKey () const
 It returns a reference to node key. More...
 
AdaptativeNodegetLeft () const
 It gets the left child. More...
 
AdaptativeNodegetRight () 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...
 
void setData (const NodeData &data)
 It sets the data in the node. More...
 
void setDiscriminator (const char &d)
 It sets the data in the node. More...
 
void setKey (const double &k)
 It sets the key to the node. More...
 
void setLeft (AdaptativeNode *node)
 It sets the left child pointer. More...
 
void setRight (AdaptativeNode *node)
 It sets the right child pointer. More...
 

Protected Attributes

NodeData m_data
 The data stored in this record. More...
 
char m_discriminator
 The discriminator used in partition. More...
 
double m_key
 The key used to access this record. More...
 
AdaptativeNodem_left
 Pointer to the left sub-tree. More...
 
AdaptativeNodem_right
 Pointer to the right sub-tree. More...
 

Private Member Functions

 AdaptativeNode (const AdaptativeNode &rhs)
 No copy constructor allowed. More...
 
AdaptativeNodeoperator= (const AdaptativeNode &rhs)
 No assignment operator allowed. More...
 

Detailed Description

template<class NodeKey, class NodeData, class NodeDataItem>
class te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >

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), a discriminator that indicates the axis of partition, the partition key and a set of data-items.

Note
The key must have methods called getX() and getY().
These kind of node stores the data only in the leafs.
The leaf nodes contains a set of values that forms a bucket (the size is controlled by the tree methods tha use this class).

Definition at line 206 of file Node.h.

Member Typedef Documentation

template<class NodeKey , class NodeData , class NodeDataItem >
typedef NodeData te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::kdData

Export data type.

Definition at line 214 of file Node.h.

template<class NodeKey , class NodeData , class NodeDataItem >
typedef NodeDataItem te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::kdDataItem

Export data item type.

Definition at line 217 of file Node.h.

template<class NodeKey , class NodeData , class NodeDataItem >
typedef NodeKey te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::kdKey

Export key type.

Definition at line 211 of file Node.h.

Constructor & Destructor Documentation

template<class NodeKey , class NodeData , class NodeDataItem >
te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::AdaptativeNode ( const double &  k)
inline

Constructor.

Definition at line 220 of file Node.h.

template<class NodeKey , class NodeData , class NodeDataItem >
te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::AdaptativeNode ( const AdaptativeNode< NodeKey, NodeData, NodeDataItem > &  rhs)
private

No copy constructor allowed.

Parameters
rhsThe other node.

Member Function Documentation

template<class NodeKey , class NodeData , class NodeDataItem >
NodeData& te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::getData ( )
inline

It returns a reference to data node.

Definition at line 247 of file Node.h.

References te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::m_data.

template<class NodeKey , class NodeData , class NodeDataItem >
const char& te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::getDiscriminator ( ) const
inline

It returns a reference to discriminator.

Definition at line 259 of file Node.h.

References te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::m_discriminator.

template<class NodeKey , class NodeData , class NodeDataItem >
const double& te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::getKey ( ) const
inline

It returns a reference to node key.

Definition at line 235 of file Node.h.

References te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::m_key.

template<class NodeKey , class NodeData , class NodeDataItem >
AdaptativeNode* te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::getLeft ( ) const
inline
template<class NodeKey , class NodeData , class NodeDataItem >
AdaptativeNode* te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::getRight ( ) const
inline
template<class NodeKey , class NodeData , class NodeDataItem >
bool te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::hasLeft ( ) const
inline
template<class NodeKey , class NodeData , class NodeDataItem >
bool te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::hasRight ( ) const
inline
template<class NodeKey , class NodeData , class NodeDataItem >
bool te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::isLeaf ( ) const
inline
template<class NodeKey , class NodeData , class NodeDataItem >
AdaptativeNode& te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::operator= ( const AdaptativeNode< NodeKey, NodeData, NodeDataItem > &  rhs)
private

No assignment operator allowed.

Parameters
rhsThe other node.
Returns
A reference for this.
template<class NodeKey , class NodeData , class NodeDataItem >
void te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::setData ( const NodeData &  data)
inline

It sets the data in the node.

Definition at line 241 of file Node.h.

References te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::m_data.

template<class NodeKey , class NodeData , class NodeDataItem >
void te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::setDiscriminator ( const char &  d)
inline

It sets the data in the node.

Definition at line 253 of file Node.h.

References te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::m_discriminator.

template<class NodeKey , class NodeData , class NodeDataItem >
void te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::setKey ( const double &  k)
inline

It sets the key to the node.

Definition at line 229 of file Node.h.

References te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::m_key.

template<class NodeKey , class NodeData , class NodeDataItem >
void te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::setLeft ( AdaptativeNode< NodeKey, NodeData, NodeDataItem > *  node)
inline

It sets the left child pointer.

Definition at line 265 of file Node.h.

References te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::m_left.

template<class NodeKey , class NodeData , class NodeDataItem >
void te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::setRight ( AdaptativeNode< NodeKey, NodeData, NodeDataItem > *  node)
inline

It sets the right child pointer.

Definition at line 271 of file Node.h.

References te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::m_right.

Member Data Documentation

template<class NodeKey , class NodeData , class NodeDataItem >
NodeData te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::m_data
protected
template<class NodeKey , class NodeData , class NodeDataItem >
char te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::m_discriminator
protected
template<class NodeKey , class NodeData , class NodeDataItem >
double te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::m_key
protected
template<class NodeKey , class NodeData , class NodeDataItem >
AdaptativeNode* te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::m_left
protected
template<class NodeKey , class NodeData , class NodeDataItem >
AdaptativeNode* te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::m_right
protected

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