Loading...
Searching...
No Matches
InternalNode< ChildT, Log2Dim > Class Template Reference

Internal nodes of a VDB treedim(),. More...

`#include <nanovdb/NanoVDB.h>`

Inheritance diagram for InternalNode< ChildT, Log2Dim >:

## Classes

class | ChildIterator
| Visits child nodes of this node only. More...
class | ValueIterator
| Visits all tile values in this node, i.e. both inactive and active tiles. More...
class | ValueOnIterator
| Visits active tile values of this node only. More...

## Public Types

using | DataType = InternalData<ChildT, Log2Dim>
using | ValueType = typename DataType::ValueT
using | FloatType = typename DataType::StatsT
using | BuildType = typename DataType::BuildT
using | LeafNodeType = typename ChildT::LeafNodeType
using | ChildNodeType = ChildT
using | CoordType = typename ChildT::CoordType
template<uint32_t LOG2>
using | MaskType = typename ChildT::template MaskType<LOG2>
template<bool On>
using | MaskIterT = typename Mask<Log2Dim>::template Iterator<On>

## Public Member Functions

ChildIterator | beginChild () const
ValueIterator | beginValue () const
ValueOnIterator | beginValueOn () const
| InternalNode ()=delete
| This class cannot be constructed or deleted.
| InternalNode (const InternalNode &)=delete
InternalNode & | operator= (const InternalNode &)=delete
| ~InternalNode ()=delete
DataType * | data ()
const DataType * | data () const
const MaskType< LOG2DIM > & | valueMask () const
| Return a const reference to the bit mask of active voxels in this internal node.
const MaskType< LOG2DIM > & | childMask () const
| Return a const reference to the bit mask of child nodes in this internal node.
CoordType | origin () const
| Return the origin in index space of this leaf node.
const ValueType & | minimum () const
| Return a const reference to the minimum active value encoded in this internal node and any of its child nodes.
const ValueType & | maximum () const
| Return a const reference to the maximum active value encoded in this internal 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 internal node and any of its child nodes.
FloatType | variance () const
| Return the variance of all the active values encoded in this internal 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 internal node and any of its child nodes.
const BBox< CoordType > & | bbox () const
| Return a const reference to the bounding box in index space of active values in this internal node and any of its child nodes.
ValueType | getValue (const CoordType &ijk) const
| Return the value of the given voxel.
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
void | localToGlobalCoord (Coord &ijk) const
| modifies local coordinates to global coordinates of a tile or child node
Coord | offsetToGlobalCoord (uint32_t n) const
bool | isActive () const
| Return true if this node or any of its child nodes contain active values.

## Static Public Member Functions

static uint32_t | dim ()
| Return the dimension, in voxel units, of this internal node (typically 8*16 or 8*16*32).
static size_t | memUsage ()
| Return memory usage in bytes for the class.
static uint32_t | CoordToOffset (const CoordType &ijk)
| Return the linear offset corresponding to the given coordinate.
static Coord | OffsetToLocalCoord (uint32_t n)

## Static Public Attributes

static constexpr bool | FIXED_SIZE = DataType::FIXED_SIZE
static constexpr uint32_t | LOG2DIM = Log2Dim
static constexpr uint32_t | TOTAL = LOG2DIM + ChildT::TOTAL
static constexpr uint32_t | DIM = 1u << TOTAL
static constexpr uint32_t | SIZE = 1u << (3 * LOG2DIM)
static constexpr uint32_t | MASK = (1u << TOTAL) - 1u
static constexpr uint32_t | LEVEL = 1 + ChildT::LEVEL
static constexpr uint64_t | NUM_VALUES = uint64_t(1) << (3 * TOTAL)

## Private Member Functions

ValueT | getValue (uint32_t n) const
bool | isActive (uint32_t n) const

## Friends

template<typename, int, int, int>
class | ReadAccessor
template<typename>
class | RootNode
template<typename, uint32_t>
class | InternalNode

## Detailed Description

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>
class nanovdb::InternalNode< ChildT, Log2Dim >

Internal nodes of a VDB treedim(),.

## Member Typedef Documentation

## BuildType

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

using BuildType = typename DataType::BuildT

## ChildNodeType

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

using ChildNodeType = ChildT

## CoordType

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

using CoordType = typename ChildT::CoordType

## DataType

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

using DataType = InternalData<ChildT, Log2Dim>

## FloatType

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

using FloatType = typename DataType::StatsT

## LeafNodeType

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

using LeafNodeType = typename ChildT::LeafNodeType

## MaskIterT

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>
template<bool On>

using MaskIterT = typename Mask<Log2Dim>::template Iterator<On>

## MaskType

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>
template<uint32_t LOG2>

using MaskType = typename ChildT::template MaskType<LOG2>

## ValueType

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

using ValueType = typename DataType::ValueT

## Constructor & Destructor Documentation

## InternalNode() [1/2]

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

InternalNode | ( |  | ) |

delete

This class cannot be constructed or deleted.

## InternalNode() [2/2]

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

InternalNode | ( | const InternalNode< ChildT, Log2Dim > & |  | ) |

delete

## ~InternalNode()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

~InternalNode | ( |  | ) |

delete

## Member Function Documentation

## average()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

const FloatType & average | ( |  | ) | const

inline

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

## bbox()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

const BBox< CoordType > & bbox | ( |  | ) | const

inline

Return a const reference to the bounding box in index space of active values in this internal node and any of its child nodes.

## beginChild()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

ChildIterator beginChild | ( |  | ) | const

inline

## beginValue()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

ValueIterator beginValue | ( |  | ) | const

inline

## beginValueOn()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

ValueOnIterator beginValueOn | ( |  | ) | const

inline

## childMask()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

const MaskType< LOG2DIM > & childMask | ( |  | ) | const

inline

Return a const reference to the bit mask of child nodes in this internal node.

## CoordToOffset()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

uint32_t CoordToOffset | ( | const CoordType & | ijk | ) |

inline static

Return the linear offset corresponding to the given coordinate.

## data() [1/2]

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

DataType * data | ( |  | ) |

inline

## data() [2/2]

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

const DataType * data | ( |  | ) | const

inline

## dim()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

uint32_t dim | ( |  | ) |

inline static

Return the dimension, in voxel units, of this internal node (typically 8*16 or 8*16*32).

## getValue()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

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

inline

Return the value of the given voxel.

## isActive() [1/2]

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

bool isActive | ( |  | ) | const

inline

Return true if this node or any of its child nodes contain active values.

## isActive() [2/2]

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

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

inline

## localToGlobalCoord()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

void localToGlobalCoord | ( | Coord & | ijk | ) | const

inline

modifies local coordinates to global coordinates of a tile or child node

## maximum()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

const ValueType & maximum | ( |  | ) | const

inline

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

## memUsage()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

size_t memUsage | ( |  | ) |

inline static

Return memory usage in bytes for the class.

## minimum()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

const ValueType & minimum | ( |  | ) | const

inline

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

## offsetToGlobalCoord()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

Coord offsetToGlobalCoord | ( | uint32_t | n | ) | const

inline

## OffsetToLocalCoord()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

Coord OffsetToLocalCoord | ( | uint32_t | n | ) |

inline static

Returns
  the local coordinate of the n'th tile or child node

## operator=()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

InternalNode & operator= | ( | const InternalNode< ChildT, Log2Dim > & |  | ) |

delete

## origin()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

CoordType origin | ( |  | ) | const

inline

Return the origin in index space of this leaf node.

## probeChild()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

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

inline

## probeLeaf()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

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

inline

## probeValue()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

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

inline

return the state and updates the value of the specified voxel

## stdDeviation()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

const FloatType & stdDeviation | ( |  | ) | const

inline

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

## valueMask()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

const MaskType< LOG2DIM > & valueMask | ( |  | ) | const

inline

Return a const reference to the bit mask of active voxels in this internal node.

## variance()

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

FloatType variance | ( |  | ) | const

inline

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

## Friends And Related Symbol Documentation

## InternalNode

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>
template<typename, uint32_t>

friend class InternalNode

friend

## ReadAccessor

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>
template<typename, int, int, int>

friend class ReadAccessor

friend

## RootNode

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>
template<typename>

friend class RootNode

friend

## Member Data Documentation

## DIM

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

uint32_t DIM = 1u << TOTAL

static constexpr

## FIXED_SIZE

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

bool FIXED_SIZE = DataType::FIXED_SIZE

static constexpr

## LEVEL

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

uint32_t LEVEL = 1 + ChildT::LEVEL

static constexpr

## LOG2DIM

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

uint32_t LOG2DIM = Log2Dim

static constexpr

## MASK

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

uint32_t MASK = (1u << TOTAL) - 1u

static constexpr

## NUM_VALUES

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

uint64_t NUM_VALUES = uint64_t(1) << (3 * TOTAL)

static constexpr

## SIZE

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

uint32_t SIZE = 1u << (3 * LOG2DIM)

static constexpr

## TOTAL

template<typename ChildT, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

uint32_t TOTAL = LOG2DIM + ChildT::TOTAL

static constexpr