OpenVDB: LeafNode< BuildT, CoordT, MaskT, Log2Dim > Class Template Reference

OpenVDB 13.0.0

Loading...
Searching...
No Matches
LeafNode< BuildT, CoordT, MaskT, Log2Dim > Class Template Reference

Leaf nodes of the VDB tree. (defaults to 8x8x8 = 512 voxels). More...

`#include <nanovdb/NanoVDB.h>`

Inheritance diagram for LeafNode< BuildT, CoordT, MaskT, Log2Dim >:

## Classes
struct | ChildNodeType
class | ValueOnIterator
| Visits all active values in a leaf node. More...
class | ValueOffIterator
| Visits all inactive values in a leaf node. More...
class | ValueIterator
| Visits all values in a leaf node, i.e. both active and inactive values. More...

## Public Types
using | LeafNodeType = LeafNode<BuildT, CoordT, MaskT, Log2Dim>
using | DataType = LeafData<BuildT, CoordT, MaskT, Log2Dim>
using | ValueType = typename DataType::ValueType
using | FloatType = typename DataType::FloatType
using | BuildType = typename DataType::BuildType
using | CoordType = CoordT
template<uint32_t LOG2>
using | MaskType = MaskT<LOG2>
template<bool ON>
using | MaskIterT = typename Mask<Log2Dim>::template Iterator<ON>
using | ArrayType

## Public Member Functions
__hostdev__ ValueOnIterator | beginValueOn () const
__hostdev__ ValueOnIterator | cbeginValueOn () const
__hostdev__ ValueOffIterator | beginValueOff () const
__hostdev__ ValueOffIterator | cbeginValueOff () const
__hostdev__ ValueIterator | beginValue () const
__hostdev__ ValueIterator | cbeginValueAll () const
__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 leaf node.
__hostdev__ const MaskType< LOG2DIM > & | getValueMask () const
__hostdev__ ValueType | minimum () const
| Return a const reference to the minimum active value encoded in this leaf node.
__hostdev__ ValueType | maximum () const
| Return a const reference to the maximum active value encoded in this leaf node.
__hostdev__ FloatType | average () const
| Return a const reference to the average of all the active values encoded in this leaf node.
__hostdev__ FloatType | variance () const
| Return the variance of all the active values encoded in this leaf node.
__hostdev__ FloatType | stdDeviation () const
| Return a const reference to the standard deviation of all the active values encoded in this leaf node.
__hostdev__ uint8_t | flags () const
__hostdev__ CoordT | origin () const
| Return the origin in index space of this leaf node.
__hostdev__ void | localToGlobalCoord (Coord &ijk) const
| Converts (in place) a local index coordinate to a global index coordinate.
__hostdev__ CoordT | offsetToGlobalCoord (uint32_t n) const
__hostdev__ math::BBox< CoordT > | bbox () const
| Return the bounding box in index space of active values in this leaf node.
__hostdev__ uint64_t | memUsage () const
| return memory usage in bytes for the leaf node
| LeafNode ()=delete
| This class cannot be constructed or deleted.
| LeafNode (const LeafNode &)=delete
LeafNode & | operator= (const LeafNode &)=delete
| ~LeafNode ()=delete
__hostdev__ ValueType | getValue (uint32_t offset) const
| Return the voxel value at the given offset.
__hostdev__ ValueType | getValue (const CoordT &ijk) const
| Return the voxel value at the given coordinate.
__hostdev__ ValueType | getFirstValue () const
| Return the first value in this leaf node.
__hostdev__ ValueType | getLastValue () const
| Return the last value in this leaf node.
__hostdev__ void | setValue (const CoordT &ijk, const ValueType &v)
| Sets the value at the specified location and activate its state.
__hostdev__ void | setValueOnly (uint32_t offset, const ValueType &v)
| Sets the value at the specified location but leaves its state unchanged.
__hostdev__ void | setValueOnly (const CoordT &ijk, const ValueType &v)
__hostdev__ bool | isActive (const CoordT &ijk) const
| Return `true` if the voxel value at the given coordinate is active.
__hostdev__ bool | isActive (uint32_t n) const
__hostdev__ bool | isActive () const
| Return `true` if any of the voxel value are active in this leaf node.
__hostdev__ bool | hasBBox () const
__hostdev__ bool | probeValue (const CoordT &ijk, ValueType &v) const
| Return `true` if the voxel value at the given coordinate is active and updates `v` with the value.
__hostdev__ const LeafNode * | probeLeaf (const CoordT &) const
__hostdev__ bool | updateBBox ()
| Updates the local bounding box of active voxels in this node. Return true if bbox was updated.
template<typename OpT, typename... ArgsT>
__hostdev__ auto | get (const CoordType &ijk, ArgsT &&... args) const
template<typename OpT, typename... ArgsT>
__hostdev__ auto | get (const uint32_t n, ArgsT &&... args) const
template<typename OpT, typename... ArgsT>
__hostdev__ auto | set (const CoordType &ijk, ArgsT &&... args)
template<typename OpT, typename... ArgsT>
__hostdev__ auto | set (const uint32_t n, ArgsT &&... args)
__hostdev__ void | setValue (uint32_t offset, const ValueType &value)
__hostdev__ void | setOn (uint32_t offset)
__hostdev__ ValueType | getMin () const
__hostdev__ ValueType | getMax () const
__hostdev__ FloatType | getAvg () const
__hostdev__ FloatType | getDev () const
__hostdev__ void | setMin (const ValueType &v)
__hostdev__ void | setMax (const ValueType &v)
__hostdev__ void | setAvg (const FloatType &v)
__hostdev__ void | setDev (const FloatType &v)
__hostdev__ void | setOrigin (const T &ijk)
__hostdev__ void | fill (const ValueType &v)

## Static Public Member Functions
static __hostdev__ CoordT | OffsetToLocalCoord (uint32_t n)
| Compute the local coordinates from a linear offset.
static __hostdev__ uint32_t | dim ()
| Return the dimension, in index space, of this leaf node (typically 8 as for openvdb leaf nodes!).
static __hostdev__ uint32_t | voxelCount ()
| Return the total number of voxels (e.g. values) encoded in this leaf node.
static __hostdev__ uint32_t | padding ()
static __hostdev__ uint32_t | CoordToOffset (const CoordT &ijk)
| Return the linear offset corresponding to the given coordinate.
static __hostdev__ uint64_t | memUsage ()
static __hostdev__ bool | hasStats ()

## Public Attributes
Coord | mBBoxMin
uint8_t | mBBoxDif [3]
uint8_t | mFlags
Mask< LOG2DIM > | mValueMask
ValueType | mMinimum
ValueType | mMaximum
FloatType | mAverage
FloatType | mStdDevi
ValueType | mValues [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
static constexpr uint32_t | DIM = 1u << TOTAL
static constexpr uint32_t | SIZE = 1u << 3 * LOG2DIM
static constexpr uint32_t | MASK = (1u << LOG2DIM) - 1u
static constexpr uint32_t | LEVEL = 0
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 BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>
class nanovdb::LeafNode< BuildT, CoordT, MaskT, Log2Dim >

Leaf nodes of the VDB tree. (defaults to 8x8x8 = 512 voxels).

## Member Typedef Documentation

## ◆ ArrayType

using ArrayType
| inherited

## ◆ BuildType

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

using BuildType = typename DataType::BuildType

## ◆ CoordType

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

using CoordType = CoordT

## ◆ DataType

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

using DataType = LeafData<BuildT, CoordT, MaskT, Log2Dim>

## ◆ FloatType

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

using FloatType = typename DataType::FloatType

## ◆ LeafNodeType

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

using LeafNodeType = LeafNode<BuildT, CoordT, MaskT, Log2Dim>

## ◆ MaskIterT

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>
template<bool ON>

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

## ◆ MaskType

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>
template<uint32_t LOG2>

using MaskType = MaskT<LOG2>

## ◆ ValueType

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

using ValueType = typename DataType::ValueType

## Constructor & Destructor Documentation

## ◆ LeafNode() [1/2]

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

LeafNode | ( |  | ) |
| delete

This class cannot be constructed or deleted.

## ◆ LeafNode() [2/2]

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

LeafNode | ( | const LeafNode< BuildT, CoordT, MaskT, Log2Dim > & |  | ) |
| delete

## ◆ ~LeafNode()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

~LeafNode | ( |  | ) |
| delete

## Member Function Documentation

## ◆ average()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ FloatType average | ( |  | ) | const
| inline

Return a const reference to the average of all the active values encoded in this leaf node.

## ◆ bbox()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ math::BBox< CoordT > bbox | ( |  | ) | const
| inline

Return the bounding box in index space of active values in this leaf node.

## ◆ beginValue()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

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

## ◆ beginValueOff()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ ValueOffIterator beginValueOff | ( |  | ) | const
| inline

## ◆ beginValueOn()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

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

## ◆ cbeginValueAll()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

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

## ◆ cbeginValueOff()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ ValueOffIterator cbeginValueOff | ( |  | ) | const
| inline

## ◆ cbeginValueOn()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

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

## ◆ CoordToOffset()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ uint32_t CoordToOffset | ( | const CoordT & | ijk | ) |
| inlinestatic

Return the linear offset corresponding to the given coordinate.

## ◆ data() [1/2]

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

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

## ◆ data() [2/2]

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

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

## ◆ dim()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ uint32_t dim | ( |  | ) |
| inlinestatic

Return the dimension, in index space, of this leaf node (typically 8 as for openvdb leaf nodes!).

## ◆ fill()

__hostdev__ void fill | ( | const ValueType & | v | ) |
| inlineinherited

## ◆ flags()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ uint8_t flags | ( |  | ) | const
| inline

## ◆ get() [1/2]

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>
template<typename OpT, typename... ArgsT>

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

## ◆ get() [2/2]

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>
template<typename OpT, typename... ArgsT>

__hostdev__ auto get | ( | const uint32_t | n,
|  | ArgsT &&... | args ) const
| inline

## ◆ getAvg()

__hostdev__ FloatType getAvg | ( |  | ) | const
| inlineinherited

## ◆ getDev()

__hostdev__ FloatType getDev | ( |  | ) | const
| inlineinherited

## ◆ getFirstValue()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

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

Return the first value in this leaf node.

## ◆ getLastValue()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

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

Return the last value in this leaf node.

## ◆ getMax()

__hostdev__ ValueType getMax | ( |  | ) | const
| inlineinherited

## ◆ getMin()

__hostdev__ ValueType getMin | ( |  | ) | const
| inlineinherited

## ◆ getValue() [1/2]

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

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

Return the voxel value at the given coordinate.

## ◆ getValue() [2/2]

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ ValueType getValue | ( | uint32_t | offset | ) | const
| inline

Return the voxel value at the given offset.

## ◆ getValueMask()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

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

## ◆ hasBBox()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ bool hasBBox | ( |  | ) | const
| inline

## ◆ hasStats()

__hostdev__ bool hasStats | ( |  | ) |
| inlinestaticinherited

## ◆ isActive() [1/3]

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

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

Return `true` if any of the voxel value are active in this leaf node.

## ◆ isActive() [2/3]

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

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

Return `true` if the voxel value at the given coordinate is active.

## ◆ isActive() [3/3]

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

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

## ◆ localToGlobalCoord()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

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

Converts (in place) a local index coordinate to a global index coordinate.

## ◆ maximum()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ ValueType maximum | ( |  | ) | const
| inline

Return a const reference to the maximum active value encoded in this leaf node.

## ◆ memUsage() [1/2]

__hostdev__ uint64_t memUsage | ( |  | ) |
| inlinestaticinherited

## ◆ memUsage() [2/2]

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ uint64_t memUsage | ( |  | ) | const
| inline

return memory usage in bytes for the leaf node

## ◆ minimum()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ ValueType minimum | ( |  | ) | const
| inline

Return a const reference to the minimum active value encoded in this leaf node.

## ◆ offsetToGlobalCoord()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

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

## ◆ OffsetToLocalCoord()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ CoordT OffsetToLocalCoord | ( | uint32_t | n | ) |
| inlinestatic

Compute the local coordinates from a linear offset.

Parameters

  n | Linear offset into this nodes dense table

Returns
  Local (vs global) 3D coordinates

## ◆ operator=()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

LeafNode & operator= | ( | const LeafNode< BuildT, CoordT, MaskT, Log2Dim > & |  | ) |
| delete

## ◆ origin()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ CoordT origin | ( |  | ) | const
| inline

Return the origin in index space of this leaf node.

## ◆ padding()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ uint32_t padding | ( |  | ) |
| inlinestatic

## ◆ probeLeaf()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ const LeafNode * probeLeaf | ( | const CoordT & |  | ) | const
| inline

## ◆ probeValue()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

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

Return `true` if the voxel value at the given coordinate is active and updates `v` with the value.

## ◆ set() [1/2]

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>
template<typename OpT, typename... ArgsT>

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

## ◆ set() [2/2]

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>
template<typename OpT, typename... ArgsT>

__hostdev__ auto set | ( | const uint32_t | n,
|  | ArgsT &&... | args )
| inline

## ◆ setAvg()

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

## ◆ setDev()

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

## ◆ setMax()

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

## ◆ setMin()

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

## ◆ setOn()

__hostdev__ void setOn | ( | uint32_t | offset | ) |
| inlineinherited

## ◆ setOrigin()

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

## ◆ setValue() [1/2]

__hostdev__ void setValue | ( | uint32_t | offset,
|  | const ValueType & | value )
| inlineinherited

## ◆ setValue() [2/2]

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ void setValue | ( | const CoordT & | ijk,
|  | const ValueType & | v )
| inline

Sets the value at the specified location and activate its state.

Note
  This is safe since it does not change the topology of the tree (unlike setValue methods on the other nodes)

## ◆ setValueOnly() [1/2]

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ void setValueOnly | ( | const CoordT & | ijk,
|  | const ValueType & | v )
| inline

## ◆ setValueOnly() [2/2]

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ void setValueOnly | ( | uint32_t | offset,
|  | const ValueType & | v )
| inline

Sets the value at the specified location but leaves its state unchanged.

Note
  This is safe since it does not change the topology of the tree (unlike setValue methods on the other nodes)

## ◆ stdDeviation()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ FloatType stdDeviation | ( |  | ) | const
| inline

Return a const reference to the standard deviation of all the active values encoded in this leaf node.

## ◆ updateBBox()

template<typename ValueT, typename CoordT, template< uint32_t > class MaskT, uint32_t LOG2DIM>

__hostdev__ bool updateBBox | ( |  | ) |
| inline

Updates the local bounding box of active voxels in this node. Return true if bbox was updated.

Warning
  It assumes that the origin and value mask have already been set.

This method is based on few (intrinsic) bit operations and hence is relatively fast. However, it should only only be called if either the value mask has changed or if the active bounding box is still undefined. e.g. during construction of this node.

## ◆ valueMask()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

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

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

## ◆ variance()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ FloatType variance | ( |  | ) | const
| inline

Return the variance of all the active values encoded in this leaf node.

## ◆ voxelCount()

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

__hostdev__ uint32_t voxelCount | ( |  | ) |
| inlinestatic

Return the total number of voxels (e.g. values) encoded in this leaf node.

## Friends And Related Symbol Documentation

## ◆ InternalNode

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>
template<typename, uint32_t>

friend class InternalNode
| friend

## ◆ ReadAccessor

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>
template<typename, int, int, int>

friend class ReadAccessor
| friend

## ◆ RootNode

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>
template<typename>

friend class RootNode
| friend

## Member Data Documentation

## ◆ DIM

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

uint32_t DIM = 1u << TOTAL
| staticconstexpr

## ◆ FIXED_SIZE

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

bool FIXED_SIZE = DataType::FIXED_SIZE
| staticconstexpr

## ◆ LEVEL

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

uint32_t LEVEL = 0
| staticconstexpr

## ◆ LOG2DIM

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

uint32_t LOG2DIM = Log2Dim
| staticconstexpr

## ◆ MASK

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

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

## ◆ mAverage

FloatType mAverage
| inherited

## ◆ mBBoxDif

uint8_t mBBoxDif[3]
| inherited

## ◆ mBBoxMin

Coord mBBoxMin
| inherited

## ◆ mFlags

uint8_t mFlags
| inherited

## ◆ mMaximum

ValueType mMaximum
| inherited

## ◆ mMinimum

ValueType mMinimum
| inherited

## ◆ mStdDevi

FloatType mStdDevi
| inherited

## ◆ mValueMask

Mask<LOG2DIM> mValueMask
| inherited

## ◆ mValues

ValueType mValues[1u<< 3 *LOG2DIM]
| inherited

## ◆ NUM_VALUES

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

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

## ◆ SIZE

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

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

## ◆ TOTAL

template<typename BuildT, typename CoordT = Coord, template< uint32_t > class MaskT = Mask, uint32_t Log2Dim = 3>

uint32_t TOTAL = LOG2DIM
| staticconstexpr