Loading...
Searching...
No Matches
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.
 
typedef NodeDataItem kdDataItem
 Export data item type.
 
typedef NodeKey kdKey
 Export key type.
 

Public Member Functions

 AdaptativeNode (const double &k)
 Constructor.
 
std::size_t descendants () const
 It counts the number of nodes below this.
 
NodeData & getData ()
 It returns a reference to data node.
 
const char & getDiscriminator () const
 It returns a reference to discriminator.
 
const double & getKey () const
 It returns a reference to node key.
 
AdaptativeNodegetLeft () const
 It gets the left child.
 
AdaptativeNodegetRight () const
 It gets the right child.
 
bool hasLeft () const
 It checks if this node has a left child.
 
bool hasRight () const
 It checks if this node has a right child.
 
bool isLeaf () const
 It returns true if this node is a leaf node.
 
void setData (const NodeData &data)
 It sets the data in the node.
 
void setDiscriminator (const char &d)
 It sets the data in the node.
 
void setKey (const double &k)
 It sets the key to the node.
 
void setLeft (AdaptativeNode *node)
 It sets the left child pointer.
 
void setRight (AdaptativeNode *node)
 It sets the right child pointer.
 

Protected Attributes

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

Private Member Functions

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

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

◆ kdData

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.

◆ kdDataItem

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.

◆ kdKey

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

◆ AdaptativeNode() [1/2]

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.

◆ AdaptativeNode() [2/2]

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

◆ descendants()

◆ getData()

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.

◆ getDiscriminator()

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.

◆ getKey()

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.

◆ getLeft()

template<class NodeKey , class NodeData , class NodeDataItem >
AdaptativeNode * te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::getLeft ( ) const
inline

◆ getRight()

template<class NodeKey , class NodeData , class NodeDataItem >
AdaptativeNode * te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::getRight ( ) const
inline

◆ hasLeft()

template<class NodeKey , class NodeData , class NodeDataItem >
bool te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::hasLeft ( ) const
inline

◆ hasRight()

template<class NodeKey , class NodeData , class NodeDataItem >
bool te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::hasRight ( ) const
inline

◆ isLeaf()

template<class NodeKey , class NodeData , class NodeDataItem >
bool te::sam::kdtree::AdaptativeNode< NodeKey, NodeData, NodeDataItem >::isLeaf ( ) const
inline

◆ operator=()

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.

◆ setData()

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.

◆ setDiscriminator()

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.

◆ setKey()

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.

◆ setLeft()

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.

◆ setRight()

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

◆ m_data

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

◆ m_discriminator

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

◆ m_key

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

◆ m_left

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

◆ m_right

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: