OpenVDB: InternalNode< ChildT, Log2Dim > Class Template Reference

OpenVDB 10.1.0

Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Friends | List of all members
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>

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

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>

static uint32_t dim | ( |  | ) |
| inlinestatic

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>

static size_t memUsage | ( |  | ) |
| inlinestatic

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>

static Coord OffsetToLocalCoord | ( | uint32_t | n | ) |
| inlinestatic

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>

constexpr uint32_t DIM = 1u << TOTAL
| staticconstexpr

## ◆ FIXED_SIZE

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

constexpr bool FIXED_SIZE = DataType::FIXED_SIZE
| staticconstexpr

## ◆ LEVEL

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

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

## ◆ LOG2DIM

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

constexpr uint32_t LOG2DIM = Log2Dim
| staticconstexpr

## ◆ MASK

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

constexpr uint32_t MASK = (1u << TOTAL) - 1u
| staticconstexpr

## ◆ NUM_VALUES

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

constexpr uint64_t NUM_VALUES = uint64_t(1) << (3 * TOTAL)
| staticconstexpr

## ◆ SIZE

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

constexpr uint32_t SIZE = 1u << (3 * LOG2DIM)
| staticconstexpr

## ◆ TOTAL

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

constexpr uint32_t TOTAL = LOG2DIM + ChildT::TOTAL
| staticconstexpr