OpenVDB  12.0.0
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Friends | List of all members
RootNode< ChildT > Class Template Reference

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

#include <nanovdb/NanoVDB.h>

Inherits RootData< 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 = math::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 >
 
using ValueT = typename ChildT::ValueType
 
using BuildT = typename ChildT::BuildType
 
using CoordT = typename ChildT::CoordType
 
using StatsT = typename ChildT::FloatType
 
using KeyT = uint64_t
 Return a key based on the coordinates of a voxel. More...
 

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
 
__hostdev__ const Tiletile (uint32_t n) const
 Returns a non-const reference to the tile at the specified linear offset. More...
 
__hostdev__ Tiletile (uint32_t n)
 
__hostdev__ TileprobeTile (const CoordT &ijk)
 
__hostdev__ const TileprobeTile (const CoordT &ijk) const
 
__hostdev__ ChildT * getChild (const Tile *tile)
 Returns a const reference to the child node in the specified tile. More...
 
__hostdev__ const ChildT * getChild (const Tile *tile) const
 
__hostdev__ const ValueTgetMin () const
 
__hostdev__ const ValueTgetMax () const
 
__hostdev__ void setMin (const ValueT &v)
 
__hostdev__ void setMax (const ValueT &v)
 
__hostdev__ void setAvg (const StatsT &v)
 
__hostdev__ void setDev (const StatsT &v)
 

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...
 
template<typename CoordType >
static __hostdev__ KeyT CoordToKey (const CoordType &ijk)
 
static __hostdev__ CoordT KeyToCoord (const KeyT &key)
 
static __hostdev__ constexpr uint32_t padding ()
 Return padding of this class in bytes, due to aliasing and 32B alignment. More...
 

Public Attributes

template<typename OpT , typename... ArgsT>
decltype(OpT::set(util::declval< Tile & >(), util::declval< ArgsT >()...)) __hostdev__ set (const CoordType &ijk, ArgsT &&...args)
 
math::BBox< CoordTmBBox
 
uint32_t mTableSize
 
ValueT mBackground
 
ValueT mMinimum
 
ValueT mMaximum
 
StatsT mAverage
 
StatsT mStdDevi
 

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.

Member Typedef Documentation

using BBoxType = math::BBox<CoordType>
using BuildT = typename ChildT::BuildType
inherited
using BuildType = typename DataType::BuildT
using ChildNodeType = ChildT
using CoordT = typename ChildT::CoordType
inherited
using CoordType = typename ChildT::CoordType
using DataType = RootData<ChildT>
using FloatType = typename DataType::StatsT
using KeyT = uint64_t
inherited

Return a key based on the coordinates of a voxel.

using LeafNodeType = typename ChildT::LeafNodeType
using LowerNodeType = typename UpperNodeType::ChildNodeType
using RootType = RootNode<ChildT>
using StatsT = typename ChildT::FloatType
inherited
using Tile = typename DataType::Tile
using UpperNodeType = ChildT
using ValueT = typename ChildT::ValueType
inherited
using ValueType = typename DataType::ValueT

Constructor & Destructor Documentation

RootNode ( )
delete

This class cannot be constructed or deleted.

RootNode ( const RootNode< ChildT > &  )
delete
~RootNode ( )
delete

Member Function Documentation

__hostdev__ const FloatType& 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.

__hostdev__ const ValueType& 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.

__hostdev__ const BBoxType& 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.

__hostdev__ ChildIterator beginChild ( )
inline
__hostdev__ DenseIterator beginDense ( )
inline
__hostdev__ ValueIterator beginValue ( )
inline
__hostdev__ ValueOnIterator beginValueOn ( )
inline
__hostdev__ ConstChildIterator cbeginChild ( ) const
inline
__hostdev__ ConstDenseIterator cbeginChildAll ( ) const
inline
__hostdev__ ConstDenseIterator cbeginDense ( ) const
inline
__hostdev__ ConstValueIterator cbeginValueAll ( ) const
inline
__hostdev__ ConstValueOnIterator cbeginValueOn ( ) const
inline
static __hostdev__ KeyT CoordToKey ( const CoordType &  ijk)
inlinestaticinherited
__hostdev__ DataType* data ( )
inline
__hostdev__ const DataType* data ( ) const
inline
__hostdev__ auto get ( const CoordType ijk,
ArgsT &&...  args 
) const
inline
__hostdev__ AccessorType getAccessor ( ) const
inline
__hostdev__ ChildT* getChild ( const Tile tile)
inlineinherited

Returns a const reference to the child node in the specified tile.

Warning
A child node is assumed to exist in the specified tile
__hostdev__ const ChildT* getChild ( const Tile tile) const
inlineinherited
__hostdev__ const ValueT& getMax ( ) const
inlineinherited
__hostdev__ const ValueT& getMin ( ) const
inlineinherited
__hostdev__ const uint32_t& getTableSize ( ) const
inline
__hostdev__ ValueType getValue ( const CoordType ijk) const
inline

Return the value of the given voxel.

__hostdev__ ValueType getValue ( int  i,
int  j,
int  k 
) const
inline
__hostdev__ bool isActive ( const CoordType ijk) const
inline
__hostdev__ bool isEmpty ( ) const
inline

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

static __hostdev__ CoordT KeyToCoord ( const KeyT key)
inlinestaticinherited
__hostdev__ const ValueType& maximum ( ) const
inline

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

static __hostdev__ uint64_t memUsage ( uint32_t  tableSize)
inlinestatic

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

__hostdev__ uint64_t memUsage ( ) const
inline

Return the actual memory footprint of this root node.

__hostdev__ const ValueType& minimum ( ) const
inline

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

RootNode& operator= ( const RootNode< ChildT > &  )
delete
static __hostdev__ constexpr uint32_t padding ( )
inlinestaticinherited

Return padding of this class in bytes, due to aliasing and 32B alignment.

Note
The extra bytes are not necessarily at the end, but can come from aliasing of individual data members.
__hostdev__ const ChildNodeType* probeChild ( const CoordType ijk) const
inline
__hostdev__ ChildNodeType* probeChild ( const CoordType ijk)
inline
__hostdev__ const LeafNodeType* probeLeaf ( const CoordType ijk) const
inline
__hostdev__ Tile* probeTile ( const CoordT ijk)
inlineinherited
__hostdev__ const Tile* probeTile ( const CoordT ijk) const
inlineinherited
__hostdev__ bool probeValue ( const CoordType ijk,
ValueType v 
) const
inline

return the state and updates the value of the specified voxel

__hostdev__ void setAvg ( const StatsT v)
inlineinherited
__hostdev__ void setDev ( const StatsT v)
inlineinherited
__hostdev__ void setMax ( const ValueT v)
inlineinherited
__hostdev__ void setMin ( const ValueT v)
inlineinherited
__hostdev__ const FloatType& 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.

__hostdev__ const Tile* tile ( uint32_t  n) const
inlineinherited

Returns a non-const reference to the tile at the specified linear offset.

Warning
The linear offset is assumed to be in the valid range
__hostdev__ Tile* tile ( uint32_t  n)
inlineinherited
__hostdev__ const uint32_t& tileCount ( ) const
inline

Return the number of tiles encoded in this root node.

__hostdev__ FloatType variance ( ) const
inline

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

Friends And Related Function Documentation

friend class ReadAccessor
friend
friend class Tree
friend

Member Data Documentation

constexpr bool FIXED_SIZE = DataType::FIXED_SIZE
static
constexpr uint32_t LEVEL = 1 + ChildT::LEVEL
static
StatsT mAverage
inherited
ValueT mBackground
inherited
math::BBox<CoordT> mBBox
inherited
ValueT mMaximum
inherited
ValueT mMinimum
inherited
StatsT mStdDevi
inherited
uint32_t mTableSize
inherited
decltype(OpT::set(util::declval<Tile&>(), util::declval<ArgsT>()...)) __hostdev__ set(const CoordType &ijk, ArgsT &&...args)
inline