Loading...
Searching...
No Matches
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
template<typename OpT, typename... ArgsT>
decltype(OpT::set(std::declval< Tile & >(), std::declval< ArgsT >()...)) | set (const CoordType &ijk, ArgsT &&... args)
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

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>

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

inline static inherited

## 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 | ) |

inline inherited

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

inline inherited

## getMax()

template<typename ChildT>

const ValueT & getMax | ( |  | ) | const

inline inherited

## getMin()

template<typename ChildT>

const ValueT & getMin | ( |  | ) | const

inline inherited

## 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>

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

inline static inherited

## 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>

uint64_t memUsage | ( | uint32_t | tableSize | ) |

inline static

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>

constexpr uint32_t padding | ( |  | ) |

inline static constexpr inherited

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 | ) |

inline inherited

## probeTile() [2/2]

template<typename ChildT>

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

inline inherited

## probeValue()

template<typename ChildT>

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

inline

return the state and updates the value of the specified voxel

## 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

## setAvg()

template<typename ChildT>

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

inline inherited

## setDev()

template<typename ChildT>

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

inline inherited

## setMax()

template<typename ChildT>

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

inline inherited

## setMin()

template<typename ChildT>

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

inline inherited

## 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 | ) |

inline inherited

## tile() [2/2]

template<typename ChildT>

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

inline inherited

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>

bool FIXED_SIZE = DataType::FIXED_SIZE

static constexpr

## LEVEL

template<typename ChildT>

uint32_t LEVEL = 1 + ChildT::LEVEL

static constexpr

## 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