OpenVDB: InternalNode< ChildT, Log2Dim > Class Template Reference

OpenVDB 12.0.1 |

Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Friends | List of all members
InternalNode< ChildT, Log2Dim > Class Template Reference

Internal nodes of a VDB tree. More...

`#include <nanovdb/NanoVDB.h>`

Inheritance diagram for InternalNode< ChildT, Log2Dim >:

## Classes
class | ChildIter
| Visits child nodes of this node only. More...
class | DenseIterator
| Visits all tile values and child nodes of this node. 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>
using | ChildIterator = ChildIter<InternalNode>
using | ConstChildIterator = ChildIter<const InternalNode>
using | ValueT = typename ChildT::ValueType
using | BuildT = typename ChildT::BuildType
using | StatsT = typename ChildT::FloatType
using | CoordT = typename ChildT::CoordType
using | MaskT = typename ChildT::template MaskType<LOG2DIM>

## Public Member Functions
__hostdev__ ChildIterator | beginChild ()
__hostdev__ ConstChildIterator | cbeginChild () const
__hostdev__ ValueIterator | beginValue () const
__hostdev__ ValueIterator | cbeginValueAll () const
__hostdev__ ValueOnIterator | beginValueOn () const
__hostdev__ ValueOnIterator | cbeginValueOn () const
__hostdev__ DenseIterator | beginDense () const
__hostdev__ DenseIterator | cbeginChildAll () const
| InternalNode ()=delete
| This class cannot be constructed or deleted.
| InternalNode (const InternalNode &)=delete
InternalNode & | operator= (const InternalNode &)=delete
| ~InternalNode ()=delete
__hostdev__ DataType * | data ()
__hostdev__ const DataType * | data () const
__hostdev__ const MaskType< LOG2DIM > & | valueMask () const
| Return a const reference to the bit mask of active voxels in this internal node.
__hostdev__ const MaskType< LOG2DIM > & | getValueMask () const
__hostdev__ const MaskType< LOG2DIM > & | childMask () const
| Return a const reference to the bit mask of child nodes in this internal node.
__hostdev__ const MaskType< LOG2DIM > & | getChildMask () const
__hostdev__ CoordType | origin () const
| Return the origin in index space of this leaf node.
__hostdev__ const ValueType & | minimum () const
| Return a const reference to the minimum active value encoded in this internal node and any of its child nodes.
__hostdev__ const ValueType & | maximum () const
| Return a const reference to the maximum active value encoded in this internal node and any of its child nodes.
__hostdev__ 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.
__hostdev__ FloatType | variance () const
| Return the variance of all the active values encoded in this internal node and any of its child nodes.
__hostdev__ 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.
__hostdev__ const math::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.
__hostdev__ ValueType | getFirstValue () const
| If the first entry in this node's table is a tile, return the tile's value. Otherwise, return the result of calling getFirstValue() on the child.
__hostdev__ ValueType | getLastValue () const
| If the last entry in this node's table is a tile, return the tile's value. Otherwise, return the result of calling getLastValue() on the child.
__hostdev__ ValueType | getValue (const CoordType &ijk) const
| Return the value of the given voxel.
__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
__hostdev__ const LeafNodeType * | probeLeaf (const CoordType &ijk) const
__hostdev__ ChildNodeType * | probeChild (const CoordType &ijk)
__hostdev__ const ChildNodeType * | probeChild (const CoordType &ijk) const
__hostdev__ void | localToGlobalCoord (Coord &ijk) const
| modifies local coordinates to global coordinates of a tile or child node
__hostdev__ Coord | offsetToGlobalCoord (uint32_t n) const
__hostdev__ bool | isActive () const
| Return true if this node or any of its child nodes contain active values.
template<typename OpT, typename... ArgsT>
__hostdev__ auto | get (const CoordType &ijk, ArgsT &&... args) const
template<typename OpT, typename... ArgsT>
__hostdev__ decltype(OpT::set(util::declval< InternalNode & >(), util::declval< uint32_t >(), util::declval< ArgsT >()...)) | set (const CoordType &ijk, ArgsT &&... args)
__hostdev__ void | setChild (uint32_t n, const void *ptr)
template<typename ValueT>
__hostdev__ void | setValue (uint32_t n, const ValueT &v)
__hostdev__ ChildT * | getChild (uint32_t n)
| Returns a pointer to the child node at the specifed linear offset.
__hostdev__ const ChildT * | getChild (uint32_t n) const
__hostdev__ ValueT | getValue (uint32_t n) const
__hostdev__ bool | isActive (uint32_t n) const
__hostdev__ bool | isChild (uint32_t n) const
template<typename T>
__hostdev__ void | setOrigin (const T &ijk)
__hostdev__ const ValueT & | getMin () const
__hostdev__ const ValueT & | getMax () 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__ uint32_t | dim ()
| Return the dimension, in voxel units, of this internal node (typically 8*16 or 8*16*32)
static __hostdev__ size_t | memUsage ()
| Return memory usage in bytes for the class.
static __hostdev__ uint32_t | CoordToOffset (const CoordType &ijk)
| Return the linear offset corresponding to the given coordinate.
static __hostdev__ Coord | OffsetToLocalCoord (uint32_t n)
static __hostdev__ constexpr uint32_t | padding ()
| Return padding of this class in bytes, due to aliasing and 32B alignment.

## Public Attributes
math::BBox< CoordT > | mBBox
uint64_t | mFlags
MaskT | mValueMask
MaskT | mChildMask
ValueT | mMinimum
ValueT | mMaximum
StatsT | mAverage
StatsT | mStdDevi
Tile | mTable [1u<<(3 *LOG2DIM)]

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

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

## Member Typedef Documentation

## ◆ BuildT

template<typename ChildT, uint32_t LOG2DIM>

using BuildT = typename ChildT::BuildType
| inherited

## ◆ BuildType

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

using BuildType = typename DataType::BuildT

## ◆ ChildIterator

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

using ChildIterator = ChildIter<InternalNode>

## ◆ ChildNodeType

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

using ChildNodeType = ChildT

## ◆ ConstChildIterator

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

using ConstChildIterator = ChildIter<const InternalNode>

## ◆ CoordT

template<typename ChildT, uint32_t LOG2DIM>

using CoordT = typename ChildT::CoordType
| inherited

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

## ◆ MaskT

template<typename ChildT, uint32_t LOG2DIM>

using MaskT = typename ChildT::template MaskType<LOG2DIM>
| inherited

## ◆ MaskType

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

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

## ◆ StatsT

template<typename ChildT, uint32_t LOG2DIM>

using StatsT = typename ChildT::FloatType
| inherited

## ◆ ValueT

template<typename ChildT, uint32_t LOG2DIM>

using ValueT = typename ChildT::ValueType
| inherited

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

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

__hostdev__ const math::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>

__hostdev__ ChildIterator beginChild | ( |  | ) |
| inline

## ◆ beginDense()

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

__hostdev__ DenseIterator beginDense | ( |  | ) | const
| inline

## ◆ beginValue()

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

__hostdev__ ValueIterator beginValue | ( |  | ) | const
| inline

## ◆ beginValueOn()

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

__hostdev__ ValueOnIterator beginValueOn | ( |  | ) | const
| inline

## ◆ cbeginChild()

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

__hostdev__ ConstChildIterator cbeginChild | ( |  | ) | const
| inline

## ◆ cbeginChildAll()

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

__hostdev__ DenseIterator cbeginChildAll | ( |  | ) | const
| inline

## ◆ cbeginValueAll()

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

__hostdev__ ValueIterator cbeginValueAll | ( |  | ) | const
| inline

## ◆ cbeginValueOn()

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

__hostdev__ ValueOnIterator cbeginValueOn | ( |  | ) | const
| inline

## ◆ childMask()

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

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

__hostdev__ DataType * data | ( |  | ) |
| inline

## ◆ data() [2/2]

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

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

## ◆ dim()

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

static __hostdev__ uint32_t dim | ( |  | ) |
| inlinestatic

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

## ◆ get()

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

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

## ◆ getChild() [1/2]

template<typename ChildT, uint32_t LOG2DIM>

__hostdev__ ChildT * getChild | ( | uint32_t | n | ) |
| inlineinherited

Returns a pointer to the child node at the specifed linear offset.

## ◆ getChild() [2/2]

template<typename ChildT, uint32_t LOG2DIM>

__hostdev__ const ChildT * getChild | ( | uint32_t | n | ) | const
| inlineinherited

## ◆ getChildMask()

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

__hostdev__ const MaskType< LOG2DIM > & getChildMask | ( |  | ) | const
| inline

## ◆ getFirstValue()

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

__hostdev__ ValueType getFirstValue | ( |  | ) | const
| inline

If the first entry in this node's table is a tile, return the tile's value. Otherwise, return the result of calling getFirstValue() on the child.

## ◆ getLastValue()

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

__hostdev__ ValueType getLastValue | ( |  | ) | const
| inline

If the last entry in this node's table is a tile, return the tile's value. Otherwise, return the result of calling getLastValue() on the child.

## ◆ getMax()

template<typename ChildT, uint32_t LOG2DIM>

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

## ◆ getMin()

template<typename ChildT, uint32_t LOG2DIM>

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

## ◆ getValue() [1/2]

template<typename ChildT, uint32_t LOG2DIM>

__hostdev__ ValueT getValue | ( | uint32_t | n | ) | const
| inlineinherited

## ◆ getValue() [2/2]

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

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

Return the value of the given voxel.

## ◆ getValueMask()

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

__hostdev__ const MaskType< LOG2DIM > & getValueMask | ( |  | ) | const
| inline

## ◆ isActive() [1/3]

template<typename ChildT, uint32_t LOG2DIM>

__hostdev__ bool isActive | ( | uint32_t | n | ) | const
| inlineinherited

## ◆ isActive() [2/3]

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

__hostdev__ bool isActive | ( |  | ) | const
| inline

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

## ◆ isActive() [3/3]

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

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

## ◆ isChild()

template<typename ChildT, uint32_t LOG2DIM>

__hostdev__ bool isChild | ( | uint32_t | n | ) | const
| inlineinherited

## ◆ localToGlobalCoord()

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

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

__hostdev__ 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 __hostdev__ size_t memUsage | ( |  | ) |
| inlinestatic

Return memory usage in bytes for the class.

## ◆ minimum()

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

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

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

## ◆ OffsetToLocalCoord()

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

static __hostdev__ 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>

__hostdev__ CoordType origin | ( |  | ) | const
| inline

Return the origin in index space of this leaf node.

## ◆ padding()

template<typename ChildT, uint32_t LOG2DIM>

static __hostdev__ 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, uint32_t Log2Dim = ChildT::LOG2DIM + 1>

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

## ◆ probeChild() [2/2]

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

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

## ◆ probeLeaf()

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

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

## ◆ probeValue()

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

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

return the state and updates the value of the specified voxel

## ◆ set()

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

__hostdev__ decltype(OpT::set(util::declval< InternalNode & >(), util::declval< uint32_t >(), util::declval< ArgsT >()...)) set | ( | const CoordType & | ijk,
|  | ArgsT &&... | args )
| inline

## ◆ setAvg()

template<typename ChildT, uint32_t LOG2DIM>

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

## ◆ setChild()

template<typename ChildT, uint32_t LOG2DIM>

__hostdev__ void setChild | ( | uint32_t | n,
|  | const void * | ptr )
| inlineinherited

## ◆ setDev()

template<typename ChildT, uint32_t LOG2DIM>

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

## ◆ setMax()

template<typename ChildT, uint32_t LOG2DIM>

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

## ◆ setMin()

template<typename ChildT, uint32_t LOG2DIM>

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

## ◆ setOrigin()

template<typename ChildT, uint32_t LOG2DIM>
template<typename T>

__hostdev__ void setOrigin | ( | const T & | ijk | ) |
| inlineinherited

## ◆ setValue()

template<typename ChildT, uint32_t LOG2DIM>
template<typename ValueT>

__hostdev__ void setValue | ( | uint32_t | n,
|  | const ValueT & | v )
| inlineinherited

## ◆ stdDeviation()

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

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

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

__hostdev__ 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
| staticconstexpr

## ◆ FIXED_SIZE

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

bool FIXED_SIZE = DataType::FIXED_SIZE
| staticconstexpr

## ◆ LEVEL

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

uint32_t LEVEL = 1 + ChildT::LEVEL
| staticconstexpr

## ◆ LOG2DIM

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

uint32_t LOG2DIM = Log2Dim
| staticconstexpr

## ◆ MASK

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

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

## ◆ mAverage

template<typename ChildT, uint32_t LOG2DIM>

StatsT mAverage
| inherited

## ◆ mBBox

template<typename ChildT, uint32_t LOG2DIM>

math::BBox<CoordT> mBBox
| inherited

## ◆ mChildMask

template<typename ChildT, uint32_t LOG2DIM>

MaskT mChildMask
| inherited

## ◆ mFlags

template<typename ChildT, uint32_t LOG2DIM>

uint64_t mFlags
| inherited

## ◆ mMaximum

template<typename ChildT, uint32_t LOG2DIM>

ValueT mMaximum
| inherited

## ◆ mMinimum

template<typename ChildT, uint32_t LOG2DIM>

ValueT mMinimum
| inherited

## ◆ mStdDevi

template<typename ChildT, uint32_t LOG2DIM>

StatsT mStdDevi
| inherited

## ◆ mTable

template<typename ChildT, uint32_t LOG2DIM>

Tile mTable[1u<<(3 *LOG2DIM)]
| inherited

## ◆ mValueMask

template<typename ChildT, uint32_t LOG2DIM>

MaskT mValueMask
| inherited

## ◆ NUM_VALUES

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

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

## ◆ SIZE

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

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

## ◆ TOTAL

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

uint32_t TOTAL = LOG2DIM + ChildT::TOTAL
| staticconstexpr