OpenVDB 10.0.1
Loading...
Searching...
No Matches
Tree< RootT > Class Template Reference

VDB Tree, which is a thin wrapper around a RootNode. More...

#include <nanovdb/NanoVDB.h>

Inheritance diagram for Tree< RootT >:
TreeData< RootT::LEVEL >

Public Types

using DataType = TreeData<RootT::LEVEL>
using RootType = RootT
using LeafNodeType = typename RootT::LeafNodeType
using ValueType = typename RootT::ValueType
using BuildType = typename RootT::BuildType
using CoordType = typename RootT::CoordType
using AccessorType = DefaultReadAccessor<BuildType>
using Node3 = RootT
using Node2 = typename RootT::ChildNodeType
using Node1 = typename Node2::ChildNodeType
using Node0 = LeafNodeType

Public Member Functions

 Tree ()=delete
 This class cannot be constructed or deleted.
 Tree (const Tree &)=delete
Treeoperator= (const Tree &)=delete
 ~Tree ()=delete
DataTypedata ()
const DataTypedata () const
RootT & root ()
const RootT & root () const
AccessorType getAccessor () const
ValueType getValue (const CoordType &ijk) const
 Return the value of the given voxel (regardless of state or location in the tree.).
bool isActive (const CoordType &ijk) const
 Return the active state of the given voxel (regardless of state or location in the tree.).
bool isEmpty () const
 Return true if this tree is empty, i.e. contains no values or nodes.
bool probeValue (const CoordType &ijk, ValueType &v) const
 Combines the previous two methods in a single call.
const ValueTypebackground () const
 Return a const reference to the background value.
void extrema (ValueType &min, ValueType &max) const
 Sets the extrema values of all the active values in this tree, i.e. in all nodes of the tree.
const BBox< CoordType > & bbox () const
 Return a const reference to the index bounding box of all the active values in this tree, i.e. in all nodes of the tree.
uint64_t activeVoxelCount () const
 Return the total number of active voxels in this tree.
const uint32_t & activeTileCount (uint32_t level) const
 Return the total number of active tiles at the specified level of the tree.
template<typename NodeT>
uint32_t nodeCount () const
uint32_t nodeCount (int level) const
template<typename NodeT>
NodeT * getFirstNode ()
 return a pointer to the first node of the specified type
template<typename NodeT>
const NodeT * getFirstNode () const
 return a const pointer to the first node of the specified type
template<int LEVEL>
NodeTrait< RootT, LEVEL >::type * getFirstNode ()
 return a pointer to the first node at the specified level
template<int LEVEL>
const NodeTrait< RootT, LEVEL >::type * getFirstNode () const
 return a const pointer to the first node of the specified level
LeafNodeTypegetFirstLeaf ()
 Template specializations of getFirstNode.
const LeafNodeTypegetFirstLeaf () const
NodeTrait< RootT, 1 >::type * getFirstLower ()
const NodeTrait< RootT, 1 >::type * getFirstLower () const
NodeTrait< RootT, 2 >::type * getFirstUpper ()
const NodeTrait< RootT, 2 >::type * getFirstUpper () const

Static Public Member Functions

static uint64_t memUsage ()
 return memory usage in bytes for the class

Detailed Description

template<typename RootT>
class nanovdb::Tree< RootT >

VDB Tree, which is a thin wrapper around a RootNode.

Member Typedef Documentation

◆ AccessorType

template<typename RootT>
using AccessorType = DefaultReadAccessor<BuildType>

◆ BuildType

template<typename RootT>
using BuildType = typename RootT::BuildType

◆ CoordType

template<typename RootT>
using CoordType = typename RootT::CoordType

◆ DataType

template<typename RootT>
using DataType = TreeData<RootT::LEVEL>

◆ LeafNodeType

template<typename RootT>
using LeafNodeType = typename RootT::LeafNodeType

◆ Node0

template<typename RootT>
using Node0 = LeafNodeType

◆ Node1

template<typename RootT>
using Node1 = typename Node2::ChildNodeType

◆ Node2

template<typename RootT>
using Node2 = typename RootT::ChildNodeType

◆ Node3

template<typename RootT>
using Node3 = RootT

◆ RootType

template<typename RootT>
using RootType = RootT

◆ ValueType

template<typename RootT>
using ValueType = typename RootT::ValueType

Constructor & Destructor Documentation

◆ Tree() [1/2]

template<typename RootT>
Tree ( )
delete

This class cannot be constructed or deleted.

◆ Tree() [2/2]

template<typename RootT>
Tree ( const Tree< RootT > & )
delete

◆ ~Tree()

template<typename RootT>
~Tree ( )
delete

Member Function Documentation

◆ activeTileCount()

template<typename RootT>
const uint32_t & activeTileCount ( uint32_t level) const
inline

Return the total number of active tiles at the specified level of the tree.

level = 1,2,3 corresponds to active tile count in lower internal nodes, upper internal nodes, and the root level. Note active values at the leaf level are referred to as active voxels (see activeVoxelCount defined above).

◆ activeVoxelCount()

template<typename RootT>
uint64_t activeVoxelCount ( ) const
inline

Return the total number of active voxels in this tree.

◆ background()

template<typename RootT>
const ValueType & background ( ) const
inline

Return a const reference to the background value.

◆ bbox()

template<typename RootT>
const BBox< CoordType > & bbox ( ) const
inline

Return a const reference to the index bounding box of all the active values in this tree, i.e. in all nodes of the tree.

◆ data() [1/2]

template<typename RootT>
DataType * data ( )
inline

◆ data() [2/2]

template<typename RootT>
const DataType * data ( ) const
inline

◆ extrema()

template<typename RootT>
void extrema ( ValueType & min,
ValueType & max ) const

Sets the extrema values of all the active values in this tree, i.e. in all nodes of the tree.

◆ getAccessor()

template<typename RootT>
AccessorType getAccessor ( ) const
inline

◆ getFirstLeaf() [1/2]

template<typename RootT>
LeafNodeType * getFirstLeaf ( )
inline

Template specializations of getFirstNode.

◆ getFirstLeaf() [2/2]

template<typename RootT>
const LeafNodeType * getFirstLeaf ( ) const
inline

◆ getFirstLower() [1/2]

template<typename RootT>
NodeTrait< RootT, 1 >::type * getFirstLower ( )
inline

◆ getFirstLower() [2/2]

template<typename RootT>
const NodeTrait< RootT, 1 >::type * getFirstLower ( ) const
inline

◆ getFirstNode() [1/4]

template<typename RootT>
template<int LEVEL>
NodeTrait< RootT, LEVEL >::type * getFirstNode ( )
inline

return a pointer to the first node at the specified level

Warning
Note it may return NULL if no nodes exist

◆ getFirstNode() [2/4]

template<typename RootT>
template<typename NodeT>
NodeT * getFirstNode ( )
inline

return a pointer to the first node of the specified type

Warning
Note it may return NULL if no nodes exist

◆ getFirstNode() [3/4]

template<typename RootT>
template<int LEVEL>
const NodeTrait< RootT, LEVEL >::type * getFirstNode ( ) const
inline

return a const pointer to the first node of the specified level

Warning
Note it may return NULL if no nodes exist

◆ getFirstNode() [4/4]

template<typename RootT>
template<typename NodeT>
const NodeT * getFirstNode ( ) const
inline

return a const pointer to the first node of the specified type

Warning
Note it may return NULL if no nodes exist

◆ getFirstUpper() [1/2]

template<typename RootT>
NodeTrait< RootT, 2 >::type * getFirstUpper ( )
inline

◆ getFirstUpper() [2/2]

template<typename RootT>
const NodeTrait< RootT, 2 >::type * getFirstUpper ( ) const
inline

◆ getValue()

template<typename RootT>
ValueType getValue ( const CoordType & ijk) const
inline

Return the value of the given voxel (regardless of state or location in the tree.).

◆ isActive()

template<typename RootT>
bool isActive ( const CoordType & ijk) const
inline

Return the active state of the given voxel (regardless of state or location in the tree.).

◆ isEmpty()

template<typename RootT>
bool isEmpty ( ) const
inline

Return true if this tree is empty, i.e. contains no values or nodes.

◆ memUsage()

template<typename RootT>
uint64_t memUsage ( )
inlinestatic

return memory usage in bytes for the class

◆ nodeCount() [1/2]

template<typename RootT>
template<typename NodeT>
uint32_t nodeCount ( ) const
inline

◆ nodeCount() [2/2]

template<typename RootT>
uint32_t nodeCount ( int level) const
inline

◆ operator=()

template<typename RootT>
Tree & operator= ( const Tree< RootT > & )
delete

◆ probeValue()

template<typename RootT>
bool probeValue ( const CoordType & ijk,
ValueType & v ) const
inline

Combines the previous two methods in a single call.

◆ root() [1/2]

template<typename RootT>
RootT & root ( )
inline

◆ root() [2/2]

template<typename RootT>
const RootT & root ( ) const
inline