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

Top-most node of the VDB tree structure. More...

#include <NanoVDB.h>

+ Inheritance diagram for nanovdb::RootNode< ChildT >:

Classes

class  BaseIter
 
class  ChildIter
 
class  DenseIter
 
class  ValueIter
 
class  ValueOnIter
 

Public Types

using DataType = RootData< ChildT >
 
using ChildNodeType = ChildT
 
using RootType = RootNode< ChildT >
 
using RootNodeType = RootType
 
using UpperNodeType = ChildT
 
using LowerNodeType = typename UpperNodeType::ChildNodeType
 
using LeafNodeType = typename ChildT::LeafNodeType
 
using ValueType = typename DataType::ValueT
 
using FloatType = typename DataType::StatsT
 
using BuildType = typename DataType::BuildT
 
using CoordType = typename ChildT::CoordType
 
using BBoxType = BBox< CoordType >
 
using AccessorType = DefaultReadAccessor< BuildType >
 
using Tile = typename DataType::Tile
 
using ChildIterator = ChildIter< RootNode >
 
using ConstChildIterator = ChildIter< const RootNode >
 
using ValueIterator = ValueIter< RootNode >
 
using ConstValueIterator = ValueIter< const RootNode >
 
using ValueOnIterator = ValueOnIter< RootNode >
 
using ConstValueOnIterator = ValueOnIter< const RootNode >
 
using DenseIterator = DenseIter< RootNode >
 
using ConstDenseIterator = DenseIter< const RootNode >
 

Public Member Functions

__hostdev__ ChildIterator beginChild ()
 
__hostdev__ ConstChildIterator cbeginChild () const
 
__hostdev__ ValueIterator beginValue ()
 
__hostdev__ ConstValueIterator cbeginValueAll () const
 
__hostdev__ ValueOnIterator beginValueOn ()
 
__hostdev__ ConstValueOnIterator cbeginValueOn () const
 
__hostdev__ DenseIterator beginDense ()
 
__hostdev__ ConstDenseIterator cbeginDense () const
 
__hostdev__ ConstDenseIterator cbeginChildAll () const
 
 RootNode ()=delete
 This class cannot be constructed or deleted. More...
 
 RootNode (const RootNode &)=delete
 
RootNodeoperator= (const RootNode &)=delete
 
 ~RootNode ()=delete
 
__hostdev__ AccessorType getAccessor () const
 
__hostdev__ DataTypedata ()
 
__hostdev__ const DataTypedata () const
 
__hostdev__ const BBoxTypebbox () 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. More...
 
__hostdev__ const ValueTypebackground () const
 Return the total number of active voxels in the root and all its child nodes. More...
 
__hostdev__ const uint32_t & tileCount () const
 Return the number of tiles encoded in this root node. More...
 
__hostdev__ const uint32_t & getTableSize () const
 
__hostdev__ const ValueTypeminimum () const
 Return a const reference to the minimum active value encoded in this root node and any of its child nodes. More...
 
__hostdev__ const ValueTypemaximum () const
 Return a const reference to the maximum active value encoded in this root node and any of its child nodes. More...
 
__hostdev__ const FloatTypeaverage () const
 Return a const reference to the average of all the active values encoded in this root node and any of its child nodes. More...
 
__hostdev__ FloatType variance () const
 Return the variance of all the active values encoded in this root node and any of its child nodes. More...
 
__hostdev__ const FloatTypestdDeviation () const
 Return a const reference to the standard deviation of all the active values encoded in this root node and any of its child nodes. More...
 
__hostdev__ uint64_t memUsage () const
 Return the actual memory footprint of this root node. More...
 
__hostdev__ bool isEmpty () const
 Return true if this RootNode is empty, i.e. contains no values or nodes. More...
 
__hostdev__ ValueType getValue (const CoordType &ijk) const
 Return the value of the given voxel. More...
 
__hostdev__ ValueType getValue (int i, int j, int k) const
 
__hostdev__ bool isActive (const CoordType &ijk) const
 
__hostdev__ bool probeValue (const CoordType &ijk, ValueType &v) const
 return the state and updates the value of the specified voxel More...
 
__hostdev__ const LeafNodeTypeprobeLeaf (const CoordType &ijk) const
 
__hostdev__ const ChildNodeTypeprobeChild (const CoordType &ijk) const
 
__hostdev__ ChildNodeTypeprobeChild (const CoordType &ijk)
 
template<typename OpT , typename... ArgsT>
__hostdev__ auto get (const CoordType &ijk, ArgsT &&...args) const
 
template<typename OpT , typename... ArgsT>
__hostdev__ auto set (const CoordType &ijk, ArgsT &&...args)
 

Static Public Member Functions

static __hostdev__ uint64_t memUsage (uint32_t tableSize)
 Return the expected memory footprint in bytes with the specified number of tiles. More...
 

Static Public Attributes

static constexpr bool FIXED_SIZE = DataType::FIXED_SIZE
 
static constexpr uint32_t LEVEL = 1 + ChildT::LEVEL
 

Friends

template<typename , int , int , int >
class ReadAccessor
 
template<typename >
class Tree
 

Detailed Description

template<typename ChildT>
class nanovdb::RootNode< ChildT >

Top-most node of the VDB tree structure.

Definition at line 4316 of file NanoVDB.h.

Member Typedef Documentation

template<typename ChildT>
using nanovdb::RootNode< ChildT >::AccessorType = DefaultReadAccessor<BuildType>

Definition at line 4332 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::BBoxType = BBox<CoordType>

Definition at line 4331 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::BuildType = typename DataType::BuildT

Definition at line 4328 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::ChildIterator = ChildIter<RootNode>

Definition at line 4415 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::ChildNodeType = ChildT

Definition at line 4320 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::ConstChildIterator = ChildIter<const RootNode>

Definition at line 4416 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::ConstDenseIterator = DenseIter<const RootNode>

Definition at line 4562 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::ConstValueIterator = ValueIter<const RootNode>

Definition at line 4465 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::ConstValueOnIterator = ValueOnIter<const RootNode>

Definition at line 4509 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::CoordType = typename ChildT::CoordType

Definition at line 4330 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::DataType = RootData<ChildT>

Definition at line 4319 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::DenseIterator = DenseIter<RootNode>

Definition at line 4561 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::FloatType = typename DataType::StatsT

Definition at line 4327 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::LeafNodeType = typename ChildT::LeafNodeType

Definition at line 4325 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::LowerNodeType = typename UpperNodeType::ChildNodeType

Definition at line 4324 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::RootNodeType = RootType

Definition at line 4322 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::RootType = RootNode<ChildT>

Definition at line 4321 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::Tile = typename DataType::Tile

Definition at line 4333 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::UpperNodeType = ChildT

Definition at line 4323 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::ValueIterator = ValueIter<RootNode>

Definition at line 4464 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::ValueOnIterator = ValueOnIter<RootNode>

Definition at line 4508 of file NanoVDB.h.

template<typename ChildT>
using nanovdb::RootNode< ChildT >::ValueType = typename DataType::ValueT

Definition at line 4326 of file NanoVDB.h.

Constructor & Destructor Documentation

template<typename ChildT>
nanovdb::RootNode< ChildT >::RootNode ( )
delete

This class cannot be constructed or deleted.

template<typename ChildT>
nanovdb::RootNode< ChildT >::RootNode ( const RootNode< ChildT > &  )
delete
template<typename ChildT>
nanovdb::RootNode< ChildT >::~RootNode ( )
delete

Member Function Documentation

template<typename ChildT>
__hostdev__ const FloatType& nanovdb::RootNode< ChildT >::average ( ) const
inline

Return a const reference to the average of all the active values encoded in this root node and any of its child nodes.

Definition at line 4600 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ const ValueType& nanovdb::RootNode< ChildT >::background ( ) const
inline

Return the total number of active voxels in the root and all its child nodes.

Return a const reference to the background value, i.e. the value associated with any coordinate location that has not been set explicitly.

Definition at line 4587 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ const BBoxType& nanovdb::RootNode< ChildT >::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.

Definition at line 4581 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ ChildIterator nanovdb::RootNode< ChildT >::beginChild ( )
inline

Definition at line 4418 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ DenseIterator nanovdb::RootNode< ChildT >::beginDense ( )
inline

Definition at line 4564 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ ValueIterator nanovdb::RootNode< ChildT >::beginValue ( )
inline

Definition at line 4467 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ ValueOnIterator nanovdb::RootNode< ChildT >::beginValueOn ( )
inline

Definition at line 4511 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ ConstChildIterator nanovdb::RootNode< ChildT >::cbeginChild ( ) const
inline

Definition at line 4419 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ ConstDenseIterator nanovdb::RootNode< ChildT >::cbeginChildAll ( ) const
inline

Definition at line 4566 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ ConstDenseIterator nanovdb::RootNode< ChildT >::cbeginDense ( ) const
inline

Definition at line 4565 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ ConstValueIterator nanovdb::RootNode< ChildT >::cbeginValueAll ( ) const
inline

Definition at line 4468 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ ConstValueOnIterator nanovdb::RootNode< ChildT >::cbeginValueOn ( ) const
inline

Definition at line 4512 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ DataType* nanovdb::RootNode< ChildT >::data ( )
inline

Definition at line 4576 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ const DataType* nanovdb::RootNode< ChildT >::data ( ) const
inline

Definition at line 4578 of file NanoVDB.h.

template<typename ChildT>
template<typename OpT , typename... ArgsT>
__hostdev__ auto nanovdb::RootNode< ChildT >::get ( const CoordType ijk,
ArgsT &&...  args 
) const
inline

Definition at line 4684 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ AccessorType nanovdb::RootNode< ChildT >::getAccessor ( ) const
inline

Definition at line 4574 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ const uint32_t& nanovdb::RootNode< ChildT >::getTableSize ( ) const
inline

Definition at line 4591 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ ValueType nanovdb::RootNode< ChildT >::getValue ( const CoordType ijk) const
inline

Return the value of the given voxel.

Definition at line 4619 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ ValueType nanovdb::RootNode< ChildT >::getValue ( int  i,
int  j,
int  k 
) const
inline

Definition at line 4620 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ bool nanovdb::RootNode< ChildT >::isActive ( const CoordType ijk) const
inline

Definition at line 4621 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ bool nanovdb::RootNode< ChildT >::isEmpty ( ) const
inline

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

Definition at line 4615 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ const ValueType& nanovdb::RootNode< ChildT >::maximum ( ) const
inline

Return a const reference to the maximum active value encoded in this root node and any of its child nodes.

Definition at line 4597 of file NanoVDB.h.

template<typename ChildT>
static __hostdev__ uint64_t nanovdb::RootNode< ChildT >::memUsage ( uint32_t  tableSize)
inlinestatic

Return the expected memory footprint in bytes with the specified number of tiles.

Definition at line 4609 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ uint64_t nanovdb::RootNode< ChildT >::memUsage ( ) const
inline

Return the actual memory footprint of this root node.

Definition at line 4612 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ const ValueType& nanovdb::RootNode< ChildT >::minimum ( ) const
inline

Return a const reference to the minimum active value encoded in this root node and any of its child nodes.

Definition at line 4594 of file NanoVDB.h.

template<typename ChildT>
RootNode& nanovdb::RootNode< ChildT >::operator= ( const RootNode< ChildT > &  )
delete
template<typename ChildT>
__hostdev__ const ChildNodeType* nanovdb::RootNode< ChildT >::probeChild ( const CoordType ijk) const
inline

Definition at line 4671 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ ChildNodeType* nanovdb::RootNode< ChildT >::probeChild ( const CoordType ijk)
inline

Definition at line 4677 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ const LeafNodeType* nanovdb::RootNode< ChildT >::probeLeaf ( const CoordType ijk) const
inline

Definition at line 4624 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ bool nanovdb::RootNode< ChildT >::probeValue ( const CoordType ijk,
ValueType v 
) const
inline

return the state and updates the value of the specified voxel

Definition at line 4623 of file NanoVDB.h.

template<typename ChildT>
template<typename OpT , typename... ArgsT>
__hostdev__ auto nanovdb::RootNode< ChildT >::set ( const CoordType ijk,
ArgsT &&...  args 
)
inline

Definition at line 4697 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ const FloatType& nanovdb::RootNode< ChildT >::stdDeviation ( ) const
inline

Return a const reference to the standard deviation of all the active values encoded in this root node and any of its child nodes.

Definition at line 4606 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ const uint32_t& nanovdb::RootNode< ChildT >::tileCount ( ) const
inline

Return the number of tiles encoded in this root node.

Definition at line 4590 of file NanoVDB.h.

template<typename ChildT>
__hostdev__ FloatType nanovdb::RootNode< ChildT >::variance ( ) const
inline

Return the variance of all the active values encoded in this root node and any of its child nodes.

Definition at line 4603 of file NanoVDB.h.

Friends And Related Function Documentation

template<typename ChildT>
template<typename , int , int , int >
friend class ReadAccessor
friend

Definition at line 4708 of file NanoVDB.h.

template<typename ChildT>
template<typename >
friend class Tree
friend

Definition at line 4715 of file NanoVDB.h.

Member Data Documentation

template<typename ChildT>
constexpr bool nanovdb::RootNode< ChildT >::FIXED_SIZE = DataType::FIXED_SIZE
static

Definition at line 4334 of file NanoVDB.h.

template<typename ChildT>
constexpr uint32_t nanovdb::RootNode< ChildT >::LEVEL = 1 + ChildT::LEVEL
static

Definition at line 4336 of file NanoVDB.h.


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