HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
nanovdb::NodeManager< BuildT > Class Template Reference

NodeManager allows for sequential access to nodes. More...

#include <NodeManager.h>

+ Inheritance diagram for nanovdb::NodeManager< BuildT >:

Public Member Functions

 NodeManager (const NodeManager &)=delete
 
 NodeManager (NodeManager &&)=delete
 
NodeManageroperator= (const NodeManager &)=delete
 
NodeManageroperator= (NodeManager &&)=delete
 
 ~NodeManager ()=delete
 
__hostdev__ bool isLinear () const
 return true if the nodes have both fixed size and are arranged breadth-first in memory. This allows for direct and memory-efficient linear access to nodes. More...
 
__hostdev__ uint64_t memUsage () const
 Return the memory footprint in bytes of this instance. More...
 
__hostdev__ GridTgrid ()
 Return a reference to the grid. More...
 
__hostdev__ const GridTgrid () const
 
__hostdev__ TreeT & tree ()
 Return a reference to the tree. More...
 
__hostdev__ const TreeT & tree () const
 
__hostdev__ RootT & root ()
 Return a reference to the root. More...
 
__hostdev__ const RootT & root () const
 
__hostdev__ uint64_t nodeCount (int level) const
 Return the number of tree nodes at the specified level. More...
 
__hostdev__ uint64_t leafCount () const
 
__hostdev__ uint64_t lowerCount () const
 
__hostdev__ uint64_t upperCount () const
 
template<int LEVEL>
__hostdev__ const NodeT< LEVEL > & node (uint32_t i) const
 Return the i'th leaf node with respect to breadth-first ordering. More...
 
template<int LEVEL>
__hostdev__ NodeT< LEVEL > & node (uint32_t i)
 Return the i'th node with respect to breadth-first ordering. More...
 
__hostdev__ const Node0 & leaf (uint32_t i) const
 Return the i'th leaf node with respect to breadth-first ordering. More...
 
__hostdev__ Node0 & leaf (uint32_t i)
 
__hostdev__ const Node1 & lower (uint32_t i) const
 Return the i'th lower internal node with respect to breadth-first ordering. More...
 
__hostdev__ Node1 & lower (uint32_t i)
 
__hostdev__ const Node2 & upper (uint32_t i) const
 Return the i'th upper internal node with respect to breadth-first ordering. More...
 
__hostdev__ Node2 & upper (uint32_t i)
 

Static Public Member Functions

static __hostdev__ bool isLinear (const GridT &grid)
 return true if the nodes have both fixed size and are arranged breadth-first in memory. This allows for direct and memory-efficient linear access to nodes. More...
 
static __hostdev__ uint64_t memUsage (const GridT &grid)
 Return the memory footprint in bytes of the NodeManager derived from the specified grid. More...
 

Static Public Attributes

static constexpr bool FIXED_SIZE = Node0::FIXED_SIZE && Node1::FIXED_SIZE && Node2::FIXED_SIZE
 

Detailed Description

template<typename BuildT>
class nanovdb::NodeManager< BuildT >

NodeManager allows for sequential access to nodes.

This class allows for sequential access to nodes in a NanoVDB tree.

Nodes are always arranged breadth first during sequential access of nodes at a particular level.

Definition at line 27 of file NodeManager.h.

Constructor & Destructor Documentation

template<typename BuildT >
nanovdb::NodeManager< BuildT >::NodeManager ( const NodeManager< BuildT > &  )
delete
template<typename BuildT >
nanovdb::NodeManager< BuildT >::NodeManager ( NodeManager< BuildT > &&  )
delete
template<typename BuildT >
nanovdb::NodeManager< BuildT >::~NodeManager ( )
delete

Member Function Documentation

template<typename BuildT >
__hostdev__ GridT& nanovdb::NodeManager< BuildT >::grid ( )
inline

Return a reference to the grid.

Definition at line 222 of file NodeManager.h.

template<typename BuildT >
__hostdev__ const GridT& nanovdb::NodeManager< BuildT >::grid ( ) const
inline

Definition at line 223 of file NodeManager.h.

template<typename BuildT >
static __hostdev__ bool nanovdb::NodeManager< BuildT >::isLinear ( const GridT grid)
inlinestatic

return true if the nodes have both fixed size and are arranged breadth-first in memory. This allows for direct and memory-efficient linear access to nodes.

Definition at line 202 of file NodeManager.h.

template<typename BuildT >
__hostdev__ bool nanovdb::NodeManager< BuildT >::isLinear ( ) const
inline

return true if the nodes have both fixed size and are arranged breadth-first in memory. This allows for direct and memory-efficient linear access to nodes.

Definition at line 206 of file NodeManager.h.

template<typename BuildT >
__hostdev__ const Node0& nanovdb::NodeManager< BuildT >::leaf ( uint32_t  i) const
inline

Return the i'th leaf node with respect to breadth-first ordering.

Definition at line 270 of file NodeManager.h.

template<typename BuildT >
__hostdev__ Node0& nanovdb::NodeManager< BuildT >::leaf ( uint32_t  i)
inline

Definition at line 271 of file NodeManager.h.

template<typename BuildT >
__hostdev__ uint64_t nanovdb::NodeManager< BuildT >::leafCount ( ) const
inline

Definition at line 237 of file NodeManager.h.

template<typename BuildT >
__hostdev__ const Node1& nanovdb::NodeManager< BuildT >::lower ( uint32_t  i) const
inline

Return the i'th lower internal node with respect to breadth-first ordering.

Definition at line 274 of file NodeManager.h.

template<typename BuildT >
__hostdev__ Node1& nanovdb::NodeManager< BuildT >::lower ( uint32_t  i)
inline

Definition at line 275 of file NodeManager.h.

template<typename BuildT >
__hostdev__ uint64_t nanovdb::NodeManager< BuildT >::lowerCount ( ) const
inline

Definition at line 238 of file NodeManager.h.

template<typename BuildT >
static __hostdev__ uint64_t nanovdb::NodeManager< BuildT >::memUsage ( const GridT grid)
inlinestatic

Return the memory footprint in bytes of the NodeManager derived from the specified grid.

Definition at line 209 of file NodeManager.h.

template<typename BuildT >
__hostdev__ uint64_t nanovdb::NodeManager< BuildT >::memUsage ( ) const
inline

Return the memory footprint in bytes of this instance.

Definition at line 219 of file NodeManager.h.

template<typename BuildT >
template<int LEVEL>
__hostdev__ const NodeT<LEVEL>& nanovdb::NodeManager< BuildT >::node ( uint32_t  i) const
inline

Return the i'th leaf node with respect to breadth-first ordering.

Definition at line 243 of file NodeManager.h.

template<typename BuildT >
template<int LEVEL>
__hostdev__ NodeT<LEVEL>& nanovdb::NodeManager< BuildT >::node ( uint32_t  i)
inline

Return the i'th node with respect to breadth-first ordering.

Definition at line 257 of file NodeManager.h.

template<typename BuildT >
__hostdev__ uint64_t nanovdb::NodeManager< BuildT >::nodeCount ( int  level) const
inline

Return the number of tree nodes at the specified level.

0 is leaf, 1 is lower internal, and 2 is upper internal level

Definition at line 235 of file NodeManager.h.

template<typename BuildT >
NodeManager& nanovdb::NodeManager< BuildT >::operator= ( const NodeManager< BuildT > &  )
delete
template<typename BuildT >
NodeManager& nanovdb::NodeManager< BuildT >::operator= ( NodeManager< BuildT > &&  )
delete
template<typename BuildT >
__hostdev__ RootT& nanovdb::NodeManager< BuildT >::root ( )
inline

Return a reference to the root.

Definition at line 230 of file NodeManager.h.

template<typename BuildT >
__hostdev__ const RootT& nanovdb::NodeManager< BuildT >::root ( ) const
inline

Definition at line 231 of file NodeManager.h.

template<typename BuildT >
__hostdev__ TreeT& nanovdb::NodeManager< BuildT >::tree ( )
inline

Return a reference to the tree.

Definition at line 226 of file NodeManager.h.

template<typename BuildT >
__hostdev__ const TreeT& nanovdb::NodeManager< BuildT >::tree ( ) const
inline

Definition at line 227 of file NodeManager.h.

template<typename BuildT >
__hostdev__ const Node2& nanovdb::NodeManager< BuildT >::upper ( uint32_t  i) const
inline

Return the i'th upper internal node with respect to breadth-first ordering.

Definition at line 278 of file NodeManager.h.

template<typename BuildT >
__hostdev__ Node2& nanovdb::NodeManager< BuildT >::upper ( uint32_t  i)
inline

Definition at line 279 of file NodeManager.h.

template<typename BuildT >
__hostdev__ uint64_t nanovdb::NodeManager< BuildT >::upperCount ( ) const
inline

Definition at line 239 of file NodeManager.h.

Member Data Documentation

template<typename BuildT >
constexpr bool nanovdb::NodeManager< BuildT >::FIXED_SIZE = Node0::FIXED_SIZE && Node1::FIXED_SIZE && Node2::FIXED_SIZE
static

Definition at line 192 of file NodeManager.h.


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