API Documentation
Loading...
Searching...
No Matches
TreeBase< t_node_type, t_type, t_node_child_size > Class Template Reference

#include <Tree.hpp>

Inheritance diagram for TreeBase< t_node_type, t_type, t_node_child_size >:
[legend]
Collaboration diagram for TreeBase< t_node_type, t_type, t_node_child_size >:
[legend]

Public Member Functions

uint04 getIndex (uint04 index) const
 
void clear ()
 
uint04 getNumberOfNodes () const
 
const t_node_type & getNode (uint04 node_id) const
 
void removeIndices (const Buffer< bool > &deletion_indices)
 
void removeIndices (uint04 begin, uint04 end)
 
void addIndices (const Buffer< bool > &insertion_indices)
 
void addIndices (uint04 begin, uint04 end)
 
uint04 size () const
 
void removeIndex (uint04 index) const
 
template<uint01 t_dims, class t_buffer_type >
Bounds< t_dims, t_type > _getBounds (const Buffer< uint04 > &indices, const t_buffer_type &elements, uint04 start, uint04 end)
 
void addIndex (uint04 index) const
 
const Buffer< uint04 > & indices () const
 
template<class t_buffer_type >
void sortVertices (const t_buffer_type &elements, t_buffer_type &sorted) const
 
TreeBaseoperator= (const TreeBase &value)
 
TreeBaseoperator= (TreeBase &&value)
 
uint04 indexSize () const
 
uint04 nodeSize () const
 

Protected Member Functions

 TreeBase (uint04 bucket_size)
 
 TreeBase (const TreeBase &tree)
 
 TreeBase (TreeBase &&tree)
 
 TreeBase (const Buffer< t_node_type > &nodes, const Buffer< uint04 > &indices, bool is_read_only)
 
virtual ~TreeBase ()
 
template<bool t_use_values>
Buffer< uint04prepareAddAll (const Buffer< bool > &index_values)
 
template<class t_buffer_type >
Buffer< uint04prepareAddAll (uint04 start_index, uint04 end_index, const t_buffer_type &elements)
 
uint04 getNumberOfFreeIndices ()
 
uint04 getNumberOfFreeNodes ()
 
void splitLeafNode (uint04 index)
 
void reclaimChildren (uint04 index)
 
template<bool t_set_true>
void _getAllT (const uint04 &node_index, Buffer< bool > &indices) const
 
template<bool t_is_presorted>
void _getAll (const uint04 &node_index, Buffer< uint04 > &indices) const
 

Protected Attributes

Buffer< uint04m_indices
 
Buffer< t_node_type, uint04, ObjectAllocator< true > > m_nodes
 
Buffer< uint04m_available_node_positions
 
Buffer< uint04m_available_indexed_positions
 
uint04 m_bucket_size
 

Static Protected Attributes

static const uint04 root_node = 0
 

Constructor & Destructor Documentation

◆ TreeBase() [1/4]

template<class t_node_type , class t_type , uint01 t_node_child_size>
TreeBase ( uint04 bucket_size)
inlineexplicitprotected

◆ TreeBase() [2/4]

template<class t_node_type , class t_type , uint01 t_node_child_size>
TreeBase ( const TreeBase< t_node_type, t_type, t_node_child_size > & tree)
inlineprotected

◆ TreeBase() [3/4]

template<class t_node_type , class t_type , uint01 t_node_child_size>
TreeBase ( TreeBase< t_node_type, t_type, t_node_child_size > && tree)
inlineprotected

◆ TreeBase() [4/4]

template<class t_node_type , class t_type , uint01 t_node_child_size>
TreeBase ( const Buffer< t_node_type > & nodes,
const Buffer< uint04 > & indices,
bool is_read_only )
inlineprotected

◆ ~TreeBase()

template<class t_node_type , class t_type , uint01 t_node_child_size>
virtual ~TreeBase ( )
inlineprotectedvirtual

Member Function Documentation

◆ _getAll()

template<class t_node_type , class t_type , uint01 t_node_child_size>
template<bool t_is_presorted>
void _getAll ( const uint04 & node_index,
Buffer< uint04 > & indices ) const
inlineprotected

◆ _getAllT()

template<class t_node_type , class t_type , uint01 t_node_child_size>
template<bool t_set_true>
void _getAllT ( const uint04 & node_index,
Buffer< bool > & indices ) const
inlineprotected

◆ _getBounds()

template<class t_node_type , class t_type , uint01 t_node_child_size>
template<uint01 t_dims, class t_buffer_type >
Bounds< t_dims, t_type > _getBounds ( const Buffer< uint04 > & indices,
const t_buffer_type & elements,
uint04 start,
uint04 end )
inline

◆ addIndex()

template<class t_node_type , class t_type , uint01 t_node_child_size>
void addIndex ( uint04 index) const
inline

◆ addIndices() [1/2]

template<class t_node_type , class t_type , uint01 t_node_child_size>
void addIndices ( const Buffer< bool > & insertion_indices)
inline

◆ addIndices() [2/2]

template<class t_node_type , class t_type , uint01 t_node_child_size>
void addIndices ( uint04 begin,
uint04 end )
inline

◆ clear()

template<class t_node_type , class t_type , uint01 t_node_child_size>
void clear ( )
inline

◆ getIndex()

template<class t_node_type , class t_type , uint01 t_node_child_size>
uint04 getIndex ( uint04 index) const
inline

◆ getNode()

template<class t_node_type , class t_type , uint01 t_node_child_size>
const t_node_type & getNode ( uint04 node_id) const
inline

◆ getNumberOfFreeIndices()

template<class t_node_type , class t_type , uint01 t_node_child_size>
uint04 getNumberOfFreeIndices ( )
inlineprotected

◆ getNumberOfFreeNodes()

template<class t_node_type , class t_type , uint01 t_node_child_size>
uint04 getNumberOfFreeNodes ( )
inlineprotected

◆ getNumberOfNodes()

template<class t_node_type , class t_type , uint01 t_node_child_size>
uint04 getNumberOfNodes ( ) const
inline

◆ indexSize()

template<class t_node_type , class t_type , uint01 t_node_child_size>
uint04 indexSize ( ) const
inline

◆ indices()

template<class t_node_type , class t_type , uint01 t_node_child_size>
const Buffer< uint04 > & indices ( ) const
inline

◆ nodeSize()

template<class t_node_type , class t_type , uint01 t_node_child_size>
uint04 nodeSize ( ) const
inline

◆ operator=() [1/2]

template<class t_node_type , class t_type , uint01 t_node_child_size>
TreeBase & operator= ( const TreeBase< t_node_type, t_type, t_node_child_size > & value)
inline

◆ operator=() [2/2]

template<class t_node_type , class t_type , uint01 t_node_child_size>
TreeBase & operator= ( TreeBase< t_node_type, t_type, t_node_child_size > && value)
inline

◆ prepareAddAll() [1/2]

template<class t_node_type , class t_type , uint01 t_node_child_size>
template<bool t_use_values>
Buffer< uint04 > prepareAddAll ( const Buffer< bool > & index_values)
inlineprotected

◆ prepareAddAll() [2/2]

template<class t_node_type , class t_type , uint01 t_node_child_size>
template<class t_buffer_type >
Buffer< uint04 > prepareAddAll ( uint04 start_index,
uint04 end_index,
const t_buffer_type & elements )
inlineprotected

◆ reclaimChildren()

template<class t_node_type , class t_type , uint01 t_node_child_size>
void reclaimChildren ( uint04 index)
inlineprotected

◆ removeIndex()

template<class t_node_type , class t_type , uint01 t_node_child_size>
void removeIndex ( uint04 index) const
inline

◆ removeIndices() [1/2]

template<class t_node_type , class t_type , uint01 t_node_child_size>
void removeIndices ( const Buffer< bool > & deletion_indices)
inline

◆ removeIndices() [2/2]

template<class t_node_type , class t_type , uint01 t_node_child_size>
void removeIndices ( uint04 begin,
uint04 end )
inline

◆ size()

template<class t_node_type , class t_type , uint01 t_node_child_size>
uint04 size ( ) const
inline

◆ sortVertices()

template<class t_node_type , class t_type , uint01 t_node_child_size>
template<class t_buffer_type >
void sortVertices ( const t_buffer_type & elements,
t_buffer_type & sorted ) const
inline

◆ splitLeafNode()

template<class t_node_type , class t_type , uint01 t_node_child_size>
void splitLeafNode ( uint04 index)
inlineprotected

Member Data Documentation

◆ m_available_indexed_positions

template<class t_node_type , class t_type , uint01 t_node_child_size>
Buffer<uint04> m_available_indexed_positions
protected

◆ m_available_node_positions

template<class t_node_type , class t_type , uint01 t_node_child_size>
Buffer<uint04> m_available_node_positions
protected

◆ m_bucket_size

template<class t_node_type , class t_type , uint01 t_node_child_size>
uint04 m_bucket_size
protected

◆ m_indices

template<class t_node_type , class t_type , uint01 t_node_child_size>
Buffer<uint04> m_indices
protected

◆ m_nodes

template<class t_node_type , class t_type , uint01 t_node_child_size>
Buffer<t_node_type, uint04, ObjectAllocator<true> > m_nodes
protected

◆ root_node

template<class t_node_type , class t_type , uint01 t_node_child_size>
const uint04 root_node = 0
staticprotected

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