OpenVDB: RootNode< ChildT > Class Template Reference

OpenVDB 11.0.0

Loading...
Searching...
No Matches
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>`

Inheritance diagram for 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 >
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.

## Public Member Functions
ChildIterator | beginChild ()
ConstChildIterator | cbeginChild () const
ValueIterator | beginValue ()
ConstValueIterator | cbeginValueAll () const
ValueOnIterator | beginValueOn ()
ConstValueOnIterator | cbeginValueOn () const
DenseIterator | beginDense ()
ConstDenseIterator | cbeginDense () const
ConstDenseIterator | cbeginChildAll () const
| RootNode ()=delete
| This class cannot be constructed or deleted.
| RootNode (const RootNode &)=delete
RootNode & | operator= (const RootNode &)=delete
| ~RootNode ()=delete
AccessorType | getAccessor () const
DataType * | data ()
const DataType * | data () const
const BBoxType & | 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.
const ValueType & | background () const
| Return the total number of active voxels in the root and all its child nodes.
const uint32_t & | tileCount () const
| Return the number of tiles encoded in this root node.
const uint32_t & | getTableSize () const
const ValueType & | minimum () const
| Return a const reference to the minimum active value encoded in this root node and any of its child nodes.
const ValueType & | maximum () const
| Return a const reference to the maximum active value encoded in this root node and any of its child nodes.
const FloatType & | average () const
| Return a const reference to the average of all the active values encoded in this root node and any of its child nodes.
FloatType | variance () const
| Return the variance of all the active values encoded in this root node and any of its child nodes.
const FloatType & | stdDeviation () 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.
uint64_t | memUsage () const
| Return the actual memory footprint of this root node.
bool | isEmpty () const
| Return true if this RootNode is empty, i.e. contains no values or nodes.
ValueType | getValue (const CoordType &ijk) const
| Return the value of the given voxel.
ValueType | getValue (int i, int j, int k) const
bool | isActive (const CoordType &ijk) const
bool | probeValue (const CoordType &ijk, ValueType &v) const
| return the state and updates the value of the specified voxel
const LeafNodeType * | probeLeaf (const CoordType &ijk) const
const ChildNodeType * | probeChild (const CoordType &ijk) const
ChildNodeType * | probeChild (const CoordType &ijk)
template<typename OpT , typename... ArgsT>
auto | get (const CoordType &ijk, ArgsT &&... args) const
const Tile * | tile (uint32_t n) const
| Returns a non-const reference to the tile at the specified linear offset.
Tile * | tile (uint32_t n)
Tile * | probeTile (const CoordT &ijk)
const Tile * | probeTile (const CoordT &ijk) const
ChildT * | getChild (const Tile *tile)
| Returns a const reference to the child node in the specified tile.
const ChildT * | getChild (const Tile *tile) const
const ValueT & | getMin () const
const ValueT & | getMax () const
void | setMin (const ValueT &v)
void | setMax (const ValueT &v)
void | setAvg (const StatsT &v)
void | setDev (const StatsT &v)

## Static Public Member Functions
static uint64_t | memUsage (uint32_t tableSize)
| Return the expected memory footprint in bytes with the specified number of tiles.
template<typename CoordType >
static KeyT | CoordToKey (const CoordType &ijk)
static CoordT | KeyToCoord (const KeyT &key)
static constexpr uint32_t | padding ()
| Return padding of this class in bytes, due to aliasing and 32B alignment.

## Public Attributes
template<typename OpT , typename... ArgsT>
decltype(OpT::set(std::declval< Tile & >(), std::declval< ArgsT >()...)) | set (const CoordType &ijk, ArgsT &&... args)
BBox< CoordT > | mBBox
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

## ◆ AccessorType

template<typename ChildT >

using AccessorType = DefaultReadAccessor<BuildType>

## ◆ BBoxType

template<typename ChildT >

using BBoxType = BBox<CoordType>

## ◆ BuildT

template<typename ChildT >

using BuildT = typename ChildT::BuildType
| inherited

## ◆ BuildType

template<typename ChildT >

using BuildType = typename DataType::BuildT

## ◆ ChildIterator

template<typename ChildT >

using ChildIterator = ChildIter<RootNode>

## ◆ ChildNodeType

template<typename ChildT >

using ChildNodeType = ChildT

## ◆ ConstChildIterator

template<typename ChildT >

using ConstChildIterator = ChildIter<const RootNode>

## ◆ ConstDenseIterator

template<typename ChildT >

using ConstDenseIterator = DenseIter<const RootNode>

## ◆ ConstValueIterator

template<typename ChildT >

using ConstValueIterator = ValueIter<const RootNode>

## ◆ ConstValueOnIterator

template<typename ChildT >

using ConstValueOnIterator = ValueOnIter<const RootNode>

## ◆ CoordT

template<typename ChildT >

using CoordT = typename ChildT::CoordType
| inherited

## ◆ CoordType

template<typename ChildT >

using CoordType = typename ChildT::CoordType

## ◆ DataType

template<typename ChildT >

using DataType = RootData<ChildT>

## ◆ DenseIterator

template<typename ChildT >

using DenseIterator = DenseIter<RootNode>

## ◆ FloatType

template<typename ChildT >

using FloatType = typename DataType::StatsT

## ◆ KeyT

template<typename ChildT >

using KeyT = uint64_t
| inherited

Return a key based on the coordinates of a voxel.

## ◆ LeafNodeType

template<typename ChildT >

using LeafNodeType = typename ChildT::LeafNodeType

## ◆ LowerNodeType

template<typename ChildT >

using LowerNodeType = typename UpperNodeType::ChildNodeType

## ◆ RootNodeType

template<typename ChildT >

using RootNodeType = RootType

## ◆ RootType

template<typename ChildT >

using RootType = RootNode<ChildT>

## ◆ StatsT

template<typename ChildT >

using StatsT = typename ChildT::FloatType
| inherited

## ◆ Tile

template<typename ChildT >

using Tile = typename DataType::Tile

## ◆ UpperNodeType

template<typename ChildT >

using UpperNodeType = ChildT

## ◆ ValueIterator

template<typename ChildT >

using ValueIterator = ValueIter<RootNode>

## ◆ ValueOnIterator

template<typename ChildT >

using ValueOnIterator = ValueOnIter<RootNode>

## ◆ ValueT

template<typename ChildT >

using ValueT = typename ChildT::ValueType
| inherited

## ◆ ValueType

template<typename ChildT >

using ValueType = typename DataType::ValueT

## Constructor & Destructor Documentation

## ◆ RootNode() [1/2]

template<typename ChildT >

RootNode | ( |  | ) |
| delete

This class cannot be constructed or deleted.

## ◆ RootNode() [2/2]

template<typename ChildT >

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

## ◆ ~RootNode()

template<typename ChildT >

~RootNode | ( |  | ) |
| delete

## Member Function Documentation

## ◆ average()

template<typename ChildT >

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.

## ◆ background()

template<typename ChildT >

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.

## ◆ bbox()

template<typename ChildT >

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.

## ◆ beginChild()

template<typename ChildT >

ChildIterator beginChild | ( |  | ) |
| inline

## ◆ beginDense()

template<typename ChildT >

DenseIterator beginDense | ( |  | ) |
| inline

## ◆ beginValue()

template<typename ChildT >

ValueIterator beginValue | ( |  | ) |
| inline

## ◆ beginValueOn()

template<typename ChildT >

ValueOnIterator beginValueOn | ( |  | ) |
| inline

## ◆ cbeginChild()

template<typename ChildT >

ConstChildIterator cbeginChild | ( |  | ) | const
| inline

## ◆ cbeginChildAll()

template<typename ChildT >

ConstDenseIterator cbeginChildAll | ( |  | ) | const
| inline

## ◆ cbeginDense()

template<typename ChildT >

ConstDenseIterator cbeginDense | ( |  | ) | const
| inline

## ◆ cbeginValueAll()

template<typename ChildT >

ConstValueIterator cbeginValueAll | ( |  | ) | const
| inline

## ◆ cbeginValueOn()

template<typename ChildT >

ConstValueOnIterator cbeginValueOn | ( |  | ) | const
| inline

## ◆ CoordToKey()

template<typename ChildT >
template<typename CoordType >

static KeyT CoordToKey | ( | const CoordType & | ijk | ) |
| inlinestaticinherited

## ◆ data() [1/2]

template<typename ChildT >

DataType * data | ( |  | ) |
| inline

## ◆ data() [2/2]

template<typename ChildT >

const DataType * data | ( |  | ) | const
| inline

## ◆ get()

template<typename ChildT >
template<typename OpT , typename... ArgsT>

auto get | ( | const CoordType & | ijk,
|  | ArgsT &&... | args
| ) |  | const
| inline

## ◆ getAccessor()

template<typename ChildT >

AccessorType getAccessor | ( |  | ) | const
| inline

## ◆ getChild() [1/2]

template<typename ChildT >

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

## ◆ getChild() [2/2]

template<typename ChildT >

const ChildT * getChild | ( | const Tile * | tile | ) | const
| inlineinherited

## ◆ getMax()

template<typename ChildT >

const ValueT & getMax | ( |  | ) | const
| inlineinherited

## ◆ getMin()

template<typename ChildT >

const ValueT & getMin | ( |  | ) | const
| inlineinherited

## ◆ getTableSize()

template<typename ChildT >

const uint32_t & getTableSize | ( |  | ) | const
| inline

## ◆ getValue() [1/2]

template<typename ChildT >

ValueType getValue | ( | const CoordType & | ijk | ) | const
| inline

Return the value of the given voxel.

## ◆ getValue() [2/2]

template<typename ChildT >

ValueType getValue | ( | int | i,
|  | int | j,
|  | int | k
| ) |  | const
| inline

## ◆ isActive()

template<typename ChildT >

bool isActive | ( | const CoordType & | ijk | ) | const
| inline

## ◆ isEmpty()

template<typename ChildT >

bool isEmpty | ( |  | ) | const
| inline

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

## ◆ KeyToCoord()

template<typename ChildT >

static CoordT KeyToCoord | ( | const KeyT & | key | ) |
| inlinestaticinherited

## ◆ maximum()

template<typename ChildT >

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.

## ◆ memUsage() [1/2]

template<typename ChildT >

uint64_t memUsage | ( |  | ) | const
| inline

Return the actual memory footprint of this root node.

## ◆ memUsage() [2/2]

template<typename ChildT >

static uint64_t memUsage | ( | uint32_t | tableSize | ) |
| inlinestatic

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

## ◆ minimum()

template<typename ChildT >

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.

## ◆ operator=()

template<typename ChildT >

RootNode & operator= | ( | const RootNode< ChildT > & |  | ) |
| delete

## ◆ padding()

template<typename ChildT >

static constexpr uint32_t padding | ( |  | ) |
| inlinestaticconstexprinherited

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.

## ◆ probeChild() [1/2]

template<typename ChildT >

ChildNodeType * probeChild | ( | const CoordType & | ijk | ) |
| inline

## ◆ probeChild() [2/2]

template<typename ChildT >

const ChildNodeType * probeChild | ( | const CoordType & | ijk | ) | const
| inline

## ◆ probeLeaf()

template<typename ChildT >

const LeafNodeType * probeLeaf | ( | const CoordType & | ijk | ) | const
| inline

## ◆ probeTile() [1/2]

template<typename ChildT >

Tile * probeTile | ( | const CoordT & | ijk | ) |
| inlineinherited

## ◆ probeTile() [2/2]

template<typename ChildT >

const Tile * probeTile | ( | const CoordT & | ijk | ) | const
| inlineinherited

## ◆ probeValue()

template<typename ChildT >

bool probeValue | ( | const CoordType & | ijk,
|  | ValueType & | v
| ) |  | const
| inline

return the state and updates the value of the specified voxel

## ◆ setAvg()

template<typename ChildT >

void setAvg | ( | const StatsT & | v | ) |
| inlineinherited

## ◆ setDev()

template<typename ChildT >

void setDev | ( | const StatsT & | v | ) |
| inlineinherited

## ◆ setMax()

template<typename ChildT >

void setMax | ( | const ValueT & | v | ) |
| inlineinherited

## ◆ setMin()

template<typename ChildT >

void setMin | ( | const ValueT & | v | ) |
| inlineinherited

## ◆ stdDeviation()

template<typename ChildT >

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.

## ◆ tile() [1/2]

template<typename ChildT >

Tile * tile | ( | uint32_t | n | ) |
| inlineinherited

## ◆ tile() [2/2]

template<typename ChildT >

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

## ◆ tileCount()

template<typename ChildT >

const uint32_t & tileCount | ( |  | ) | const
| inline

Return the number of tiles encoded in this root node.

## ◆ variance()

template<typename ChildT >

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 Symbol Documentation

## ◆ ReadAccessor

template<typename ChildT >
template<typename , int , int , int >

friend class ReadAccessor
| friend

## ◆ Tree

template<typename ChildT >
template<typename >

friend class Tree
| friend

## Member Data Documentation

## ◆ FIXED_SIZE

template<typename ChildT >

constexpr bool FIXED_SIZE = DataType::FIXED_SIZE
| staticconstexpr

## ◆ LEVEL

template<typename ChildT >

constexpr uint32_t LEVEL = 1 + ChildT::LEVEL
| staticconstexpr

## ◆ mAverage

template<typename ChildT >

StatsT mAverage
| inherited

## ◆ mBackground

template<typename ChildT >

ValueT mBackground
| inherited

## ◆ mBBox

template<typename ChildT >

BBox<CoordT> mBBox
| inherited

## ◆ mMaximum

template<typename ChildT >

ValueT mMaximum
| inherited

## ◆ mMinimum

template<typename ChildT >

ValueT mMinimum
| inherited

## ◆ mStdDevi

template<typename ChildT >

StatsT mStdDevi
| inherited

## ◆ mTableSize

template<typename ChildT >

uint32_t mTableSize
| inherited

## ◆ set

template<typename ChildT >
template<typename OpT , typename... ArgsT>

decltype(OpT::set(std::declval< Tile & >(), std::declval< ArgsT >()...)) set(const CoordType &ijk, ArgsT &&... args)
| inline