OpenVDB: LeafNode< bool, Log2Dim >::DenseIter< NodeT, ValueT > Struct Template Reference

OpenVDB 12.0.0 |

Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Static Protected Member Functions | Friends | List of all members
LeafNode< bool, Log2Dim >::DenseIter< NodeT, ValueT > Struct Template Reference

`#include <openvdb/tree/LeafNodeBool.h>`

Inheritance diagram for LeafNode< bool, Log2Dim >::DenseIter< NodeT, ValueT >:

## Public Types
using | BaseT = DenseIteratorBase<MaskDenseIter, DenseIter, NodeT, void, ValueT>
using | NonConstValueT = typename BaseT::NonConstValueType
using | BaseT
using | NonConstValueT
using | BuildType
using | ValueType
using | Buffer
using | LeafNodeType
using | NodeMaskType
using | Ptr
using | ValueOnIter
using | ValueOnCIter
using | ValueOffIter
using | ValueOffCIter
using | ValueAllIter
using | ValueAllCIter
using | ChildOnIter
using | ChildOnCIter
using | ChildOffIter
using | ChildOffCIter
using | ChildAllIter
using | ChildAllCIter
using | NodeType
using | ChildNodeType
using | NonConstNodeType
using | NonConstValueType
using | NonConstChildNodeType

## Public Member Functions
| DenseIter ()
| DenseIter (const MaskDenseIter &iter, NodeT *parent)
bool | getItem (Index pos, void *&child, NonConstValueT &value) const
void | unsetItem (Index pos, const ValueT &val) const
| LeafNode (const Coord &xyz, bool value, bool active)
| LeafNode (PartialCreate, const Coord &xyz, bool value, bool active)
| LeafNode (const LeafNode< ValueT, Log2Dim > &other)
| LeafNode (const LeafNode< ValueT, Log2Dim > &other, bool background, TopologyCopy)
| LeafNode (const LeafNode< ValueT, Log2Dim > &other, TopologyCopy)
| LeafNode (const Coord &xyz, const NodeMaskType &mask, const Buffer &buff, const Index32 trans)
| LeafNode (const LeafNode< ValueT, Log2Dim > &other, bool offValue, bool onValue, TopologyCopy)
void | addTileAndCache (Index level, const Coord &xyz, bool val, bool active, AccessorT &)
void | merge (const LeafNode &other, bool, bool)
void | merge (bool tileValue, bool tileActive)
void | topologyIntersection (const LeafNode< OtherType, Log2Dim > &other, const bool &)
void | topologyDifference (const LeafNode< OtherType, Log2Dim > &other, const bool &)
void | copyFromDense (const CoordBBox &bbox, const DenseT &dense, bool background, bool tolerance)
void | combine (bool value, bool valueIsActive, CombineOp &op)
void | combine2 (bool value, const OtherNodeT &other, bool valueIsActive, CombineOp &op)
| DenseIter ()
| DenseIter (const MaskDenseIterator &iter, NodeT *parent)
bool | getItem (Index pos, void *&child, NonConstValueT &value) const
void | unsetItem (Index pos, const ValueT &value) const
| LeafNode ()
| Default constructor.
| LeafNode (const Coord &coords, const ValueType &value=zeroVal< ValueType >(), bool active=false)
| Constructor.
| LeafNode (PartialCreate, const Coord &coords, const ValueType &value=zeroVal< ValueType >(), bool active=false)
| "Partial creation" constructor used during file input
| LeafNode (const LeafNode &)
| Deep copy constructor.
| LeafNode (const LeafNode< OtherValueType, Log2Dim > &other)
| Value conversion copy constructor.
| LeafNode (const LeafNode< OtherValueType, Log2Dim > &other, const ValueType &offValue, const ValueType &onValue, TopologyCopy)
| Topology copy constructor.
| LeafNode (const LeafNode< OtherValueType, Log2Dim > &other, const ValueType &background, TopologyCopy)
| Topology copy constructor.
| LeafNode (const Coord &xyz, bool value, bool active)
| LeafNode (PartialCreate, const Coord &xyz, bool value, bool active)
| LeafNode (const LeafNode< ValueT, Log2Dim > &other)
| LeafNode (const LeafNode< ValueT, Log2Dim > &other, bool background, TopologyCopy)
| LeafNode (const LeafNode< ValueT, Log2Dim > &other, TopologyCopy)
| LeafNode (const Coord &xyz, const NodeMaskType &mask, const Buffer &buff, const Index32 trans)
| LeafNode (const LeafNode< ValueT, Log2Dim > &other, bool offValue, bool onValue, TopologyCopy)
LeafNode & | operator= (const LeafNode &)=default
| Deep assignment operator.
| ~LeafNode ()
| Destructor.
void | nodeCount (std::vector< Index64 > &) const
| no-op
void | nodeCount (std::vector< Index32 > &) const
Index64 | onVoxelCount () const
| Return the number of voxels marked On.
Index64 | offVoxelCount () const
| Return the number of voxels marked Off.
Index64 | onLeafVoxelCount () const
Index64 | offLeafVoxelCount () const
bool | isEmpty () const
| Return `true` if this node has no active voxels.
bool | isDense () const
| Return `true` if this node contains only active voxels.
bool | isAllocated () const
| Return `true` if memory for this node's buffer has been allocated.
bool | allocate ()
| Allocate memory for this node's buffer if it has not already been allocated.
Index64 | memUsage () const
| Return the memory in bytes occupied by this node.
Index64 | memUsageIfLoaded () const
void | evalActiveBoundingBox (CoordBBox &bbox, bool visitVoxels=true) const
CoordBBox | getNodeBoundingBox () const
| Return the bounding box of this node, i.e., the full index space spanned by this leaf node.
void | setOrigin (const Coord &origin)
| Set the grid index coordinates of this node's local origin.
const Coord & | origin () const
| Return the grid index coordinates of this node's local origin.
void | getOrigin (Coord &origin) const
void | getOrigin (Int32 &x, Int32 &y, Int32 &z) const
Coord | offsetToGlobalCoord (Index n) const
| Return the global coordinates for a linear table offset.
Index32 | transientData () const
| Return the transient data value.
void | setTransientData (Index32 transientData)
| Set the transient data value.
std::string | str () const
| Return a string representation of this node.
bool | hasSameTopology (const LeafNode< OtherType, OtherLog2Dim > *other) const
| Return `true` if the given node (which may have a different `ValueType` than this node) has the same active value topology as this node.
bool | operator== (const LeafNode &other) const
| Check for buffer, state and origin equivalence.
bool | operator!= (const LeafNode &other) const
ValueOnCIter | cbeginValueOn () const
ValueOnCIter | beginValueOn () const
ValueOnIter | beginValueOn ()
ValueOffCIter | cbeginValueOff () const
ValueOffCIter | beginValueOff () const
ValueOffIter | beginValueOff ()
ValueAllCIter | cbeginValueAll () const
ValueAllCIter | beginValueAll () const
ValueAllIter | beginValueAll ()
ValueOnCIter | cendValueOn () const
ValueOnCIter | endValueOn () const
ValueOnIter | endValueOn ()
ValueOffCIter | cendValueOff () const
ValueOffCIter | endValueOff () const
ValueOffIter | endValueOff ()
ValueAllCIter | cendValueAll () const
ValueAllCIter | endValueAll () const
ValueAllIter | endValueAll ()
ChildOnCIter | cbeginChildOn () const
ChildOnCIter | beginChildOn () const
ChildOnIter | beginChildOn ()
ChildOffCIter | cbeginChildOff () const
ChildOffCIter | beginChildOff () const
ChildOffIter | beginChildOff ()
ChildAllCIter | cbeginChildAll () const
ChildAllCIter | beginChildAll () const
ChildAllIter | beginChildAll ()
ChildOnCIter | cendChildOn () const
ChildOnCIter | endChildOn () const
ChildOnIter | endChildOn ()
ChildOffCIter | cendChildOff () const
ChildOffCIter | endChildOff () const
ChildOffIter | endChildOff ()
ChildAllCIter | cendChildAll () const
ChildAllCIter | endChildAll () const
ChildAllIter | endChildAll ()
void | swap (Buffer &other)
| Exchange this node's data buffer with the given data buffer without changing the active states of the values.
const Buffer & | buffer () const
Buffer & | buffer ()
void | readTopology (std::istream &is, bool fromHalf=false)
| Read in just the topology.
void | writeTopology (std::ostream &os, bool toHalf=false) const
| Write out just the topology.
void | readBuffers (std::istream &is, bool fromHalf=false)
| Read buffers from a stream.
void | readBuffers (std::istream &is, const CoordBBox &bbox, bool fromHalf=false)
| Read buffers that intersect the given bounding box.
void | writeBuffers (std::ostream &os, bool toHalf=false) const
| Write buffers to a stream.
size_t | streamingSize (bool toHalf=false) const
const ValueType & | getValue (const Coord &xyz) const
| Return the value of the voxel at the given coordinates.
const ValueType & | getValue (Index offset) const
| Return the value of the voxel at the given linear offset.
const ValueType & | getValue (const Coord &xyz, bool &state, int &level, AccessorT &) const
| Return the value of the voxel at the given coordinates and return its active state and level (i.e., 0) in state and level.
bool | probeValue (const Coord &xyz, ValueType &val) const
| Return `true` if the voxel at the given coordinates is active.
bool | probeValue (Index offset, ValueType &val) const
| Return `true` if the voxel at the given offset is active.
void | setActiveState (const Coord &xyz, bool on)
| Set the active state of the voxel at the given coordinates but don't change its value.
void | setActiveState (Index offset, bool on)
| Set the active state of the voxel at the given offset but don't change its value.
void | setValueOnly (const Coord &xyz, const ValueType &val)
| Set the value of the voxel at the given coordinates but don't change its active state.
void | setValueOnly (Index offset, const ValueType &val)
| Set the value of the voxel at the given offset but don't change its active state.
void | setValueOff (const Coord &xyz)
| Mark the voxel at the given coordinates as inactive but don't change its value.
void | setValueOff (Index offset)
| Mark the voxel at the given offset as inactive but don't change its value.
void | setValueOff (const Coord &xyz, const ValueType &val)
| Set the value of the voxel at the given coordinates and mark the voxel as inactive.
void | setValueOff (Index offset, const ValueType &val)
| Set the value of the voxel at the given offset and mark the voxel as inactive.
void | setValueOn (const Coord &xyz)
| Mark the voxel at the given coordinates as active but don't change its value.
void | setValueOn (Index offset)
| Mark the voxel at the given offset as active but don't change its value.
void | setValueOn (const Coord &xyz, const ValueType &val)
| Set the value of the voxel at the given coordinates and mark the voxel as active.
void | setValueOn (Index offset, const ValueType &val)
| Set the value of the voxel at the given offset and mark the voxel as active.
void | setValue (const Coord &xyz, const ValueType &val)
| Set the value of the voxel at the given coordinates and mark the voxel as active.
void | modifyValue (Index offset, const ModifyOp &op)
| Apply a functor to the value of the voxel at the given offset and mark the voxel as active.
void | modifyValue (const Coord &xyz, const ModifyOp &op)
| Apply a functor to the value of the voxel at the given coordinates and mark the voxel as active.
void | modifyValueAndActiveState (const Coord &xyz, const ModifyOp &op)
| Apply a functor to the voxel at the given coordinates.
void | setValuesOn ()
| Mark all voxels as active but don't change their values.
void | setValuesOff ()
| Mark all voxels as inactive but don't change their values.
bool | isValueOn (const Coord &xyz) const
| Return `true` if the voxel at the given coordinates is active.
bool | isValueOn (Index offset) const
| Return `true` if the voxel at the given offset is active.
bool | isValueOff (const Coord &xyz) const
| Return `true` if the voxel at the given coordinates is inactive.
bool | isValueOff (Index offset) const
| Return `true` if the voxel at the given offset is inactive.
void | clip (const CoordBBox &, const ValueType &background)
| Set all voxels that lie outside the given axis-aligned box to the background.
void | fill (const CoordBBox &bbox, const ValueType &, bool active=true)
| Set all voxels within an axis-aligned box to the specified value and active state.
void | fill (const ValueType &value)
| Set all voxels to the specified value but don't change their active states.
void | fill (const ValueType &value, bool active)
| Set all voxels to the specified value and active state.
void | denseFill (const CoordBBox &bbox, const ValueType &value, bool active=true)
| Set all voxels within an axis-aligned box to the specified value and active state.
void | copyToDense (const CoordBBox &bbox, DenseT &dense) const
| Copy into a dense grid the values of the voxels that lie within a given bounding box.
void | copyFromDense (const CoordBBox &bbox, const DenseT &dense, const ValueType &background, const ValueType &tolerance)
| Copy from a dense grid into this node the values of the voxels that lie within a given bounding box.
void | copyFromDense (const CoordBBox &bbox, const DenseT &dense, bool background, bool tolerance)
const ValueType & | getValueAndCache (const Coord &xyz, AccessorT &) const
| Return the value of the voxel at the given coordinates.
bool | isValueOnAndCache (const Coord &xyz, AccessorT &) const
| Return `true` if the voxel at the given coordinates is active.
void | setValueAndCache (const Coord &xyz, const ValueType &val, AccessorT &)
| Change the value of the voxel at the given coordinates and mark it as active.
void | setValueOnlyAndCache (const Coord &xyz, const ValueType &val, AccessorT &)
| Change the value of the voxel at the given coordinates but preserve its state.
void | modifyValueAndCache (const Coord &xyz, const ModifyOp &op, AccessorT &)
| Apply a functor to the value of the voxel at the given coordinates and mark the voxel as active.
void | modifyValueAndActiveStateAndCache (const Coord &xyz, const ModifyOp &op, AccessorT &)
void | setValueOffAndCache (const Coord &xyz, const ValueType &value, AccessorT &)
| Change the value of the voxel at the given coordinates and mark it as inactive.
void | setActiveStateAndCache (const Coord &xyz, bool on, AccessorT &)
| Set the active state of the voxel at the given coordinates without changing its value.
bool | probeValueAndCache (const Coord &xyz, ValueType &val, AccessorT &) const
| Return `true` if the voxel at the given coordinates is active and return the voxel value in val.
const ValueType & | getFirstValue () const
| Return a const reference to the first value in the buffer.
const ValueType & | getLastValue () const
| Return a const reference to the last value in the buffer.
void | resetBackground (const ValueType &oldBackground, const ValueType &newBackground)
| Replace inactive occurrences of oldBackground with newBackground, and inactive occurrences of -oldBackground with -newBackground.
void | negate ()
void | voxelizeActiveTiles (bool=true)
| No-op.
void | merge (const LeafNode &)
void | merge (const ValueType &tileValue, bool tileActive)
void | merge (const LeafNode &other, const ValueType &, const ValueType &)
void | merge (const LeafNode &other, bool, bool)
void | merge (bool tileValue, bool tileActive)
void | topologyUnion (const LeafNode< OtherType, Log2Dim > &other, const bool preserveTiles=false)
| Union this node's set of active values with the active values of the other node, whose `ValueType` may be different. So a resulting voxel will be active if either of the original voxels were active.
void | topologyIntersection (const LeafNode< OtherType, Log2Dim > &other, const ValueType &)
| Intersect this node's set of active values with the active values of the other node, whose `ValueType` may be different. So a resulting voxel will be active only if both of the original voxels were active.
void | topologyIntersection (const LeafNode< OtherType, Log2Dim > &other, const bool &)
void | topologyDifference (const LeafNode< OtherType, Log2Dim > &other, const ValueType &)
| Difference this node's set of active values with the active values of the other node, whose `ValueType` may be different. So a resulting voxel will be active only if the original voxel is active in this LeafNode and inactive in the other LeafNode.
void | topologyDifference (const LeafNode< OtherType, Log2Dim > &other, const bool &)
void | combine (const LeafNode &other, CombineOp &op)
void | combine (const ValueType &value, bool valueIsActive, CombineOp &op)
void | combine (bool value, bool valueIsActive, CombineOp &op)
void | combine2 (const LeafNode &other, const OtherType &, bool valueIsActive, CombineOp &)
void | combine2 (const ValueType &, const OtherNodeT &other, bool valueIsActive, CombineOp &)
void | combine2 (const LeafNode &b0, const OtherNodeT &b1, CombineOp &)
void | combine2 (bool value, const OtherNodeT &other, bool valueIsActive, CombineOp &op)
void | prune (const ValueType &=zeroVal< ValueType >())
| This function exists only to enable template instantiation.
void | addLeaf (LeafNode *)
void | addLeafAndCache (LeafNode *, AccessorT &)
NodeT * | stealNode (const Coord &, const ValueType &, bool)
NodeT * | probeNode (const Coord &)
const NodeT * | probeConstNode (const Coord &) const
void | getNodes (ArrayT &) const
void | stealNodes (ArrayT &, const ValueType &, bool)
void | addTile (Index level, const Coord &, const ValueType &, bool)
void | addTile (Index offset, const ValueType &, bool)
void | addTileAndCache (Index, const Coord &, const ValueType &, bool, AccessorT &)
void | addTileAndCache (Index level, const Coord &xyz, bool val, bool active, AccessorT &)
LeafNode * | touchLeaf (const Coord &)
| Return a pointer to this node.
LeafNode * | touchLeafAndCache (const Coord &, AccessorT &)
NodeT * | probeNodeAndCache (const Coord &, AccessorT &)
LeafNode * | probeLeaf (const Coord &)
const LeafNode * | probeLeaf (const Coord &) const
LeafNode * | probeLeafAndCache (const Coord &, AccessorT &)
const LeafNode * | probeLeafAndCache (const Coord &, AccessorT &) const
const LeafNode * | probeConstLeaf (const Coord &) const
| Return a `const` pointer to this node.
const LeafNode * | probeConstLeafAndCache (const Coord &, AccessorT &) const
const NodeT * | probeConstNodeAndCache (const Coord &, AccessorT &) const
bool | isConstant (ValueType &firstValue, bool &state, const ValueType &tolerance=zeroVal< ValueType >()) const
bool | isConstant (ValueType &minValue, ValueType &maxValue, bool &state, const ValueType &tolerance=zeroVal< ValueType >()) const
ValueType | medianAll (ValueType *tmp=nullptr) const
| Computes the median value of all the active AND inactive voxels in this node.
Index | medianOn (ValueType &value, ValueType *tmp=nullptr) const
| Computes the median value of all the active voxels in this node.
Index | medianOff (ValueType &value, ValueType *tmp=nullptr) const
| Computes the median value of all the inactive voxels in this node.
bool | isInactive () const
| Return `true` if all of this node's values are inactive.
const ValueType & | getValueUnsafe (Index offset) const
| Return the value of the voxel at the given offset.
bool | getValueUnsafe (Index offset, ValueType &value) const
| Return true if the voxel at the given offset is active and set value.
void | setActiveStateUnsafe (Index offset, bool on)
| Set the active state of the voxel at the given offset but don't change its value.
void | setValueOnlyUnsafe (Index offset, const ValueType &value)
| Set the value of the voxel at the given coordinates but don't change its active state.
void | setValueOnUnsafe (Index offset)
| Mark the voxel at the given offset as active but don't change its value.
void | setValueOnUnsafe (Index offset, const ValueType &value)
| Set the value of the voxel at the given coordinates and mark the voxel as active.
void | setValueOffUnsafe (Index offset)
| Mark the voxel at the given offset as inactive but don't change its value.
void | setValueOffUnsafe (Index offset, const ValueType &value)
| Set the value of the voxel at the given coordinates and mark the voxel as active.
bool | isValueMaskOn (Index n) const
bool | isValueMaskOn () const
bool | isValueMaskOff (Index n) const
bool | isValueMaskOff () const
const NodeMaskType & | getValueMask () const
NodeMaskType & | getValueMask ()
const NodeMaskType & | valueMask () const
void | setValueMask (const NodeMaskType &mask)
bool | isChildMaskOn (Index) const
bool | isChildMaskOff (Index) const
bool | isChildMaskOff () const
void | setItem (Index, void *) const
| Set the value of the item at the given index in the parent node's table.
bool | isChildNode () const
| Return `true` if this iterator is pointing to a child node.
void * | probeChild (NonConstValueType &value) const
| If this iterator is pointing to a child node, return a pointer to the node. Otherwise, return nullptr and, in value, the value to which this iterator is pointing.
bool | probeChild (void *&child, NonConstValueType &value) const
| If this iterator is pointing to a child node, return `true` and return a pointer to the child node in child. Otherwise, return `false` and return the value to which this iterator is pointing in value.
bool | probeValue (NonConstValueType &value) const
| Return `true` if this iterator is pointing to a value and return the value in value. Otherwise, return `false`.
void | setChild (void *child) const
| Replace with the given child node the item in the parent node's table to which this iterator is pointing.
void | setValue (const ValueT &value) const
| Replace with the given value the item in the parent node's table to which this iterator is pointing.
bool | operator== (const IteratorBase &other) const
bool | operator!= (const IteratorBase &other) const
NodeT * | getParentNode () const
| Return a pointer to the node (if any) over which this iterator is iterating.
NodeT & | parent () const
| Return a reference to the node over which this iterator is iterating.
Index | offset () const
| Return this iterator's position as an index into the parent node's table.
Index | pos () const
| Identical to offset.
bool | test () const
| Return `true` if this iterator is not yet exhausted.
| operator bool () const
| Return `true` if this iterator is not yet exhausted.
bool | next ()
| Advance to the next item in the parent node's table.
void | increment ()
| Advance to the next item in the parent node's table.
void | increment (Index n)
| Advance n items in the parent node's table.
IteratorBase & | operator++ ()
| Advance to the next item in the parent node's table.
bool | isValueOn () const
| Return `true` if this iterator is pointing to an active value. Return `false` if it is pointing to either an inactive value or a child node.
void | setValueOn (bool on=true) const
| If this iterator is pointing to a value, set the value's active state. Otherwise, do nothing.
void | setValueOff () const
| If this iterator is pointing to a value, mark the value as inactive.
Coord | getCoord () const
| Return the coordinates of the item to which this iterator is pointing.
void | getCoord (Coord &xyz) const
| Return in xyz the coordinates of the item to which this iterator is pointing.

## Static Public Member Functions
static Index | log2dim ()
| Return log2 of the dimension of this LeafNode, e.g. 3 if dimensions are 8^3.
static Index | dim ()
| Return the number of voxels in each coordinate dimension.
static Index | size ()
| Return the total number of voxels represented by this LeafNode.
static Index | numValues ()
| Return the total number of voxels represented by this LeafNode.
static Index | getLevel ()
| Return the level of this node, which by definition is zero for LeafNodes.
static void | getNodeLog2Dims (std::vector< Index > &dims)
| Append the Log2Dim of this LeafNode to the specified vector.
static Index | getChildDim ()
| Return the dimension of child nodes of this LeafNode, which is one for voxels.
static Index64 | leafCount ()
| Return the leaf count for this node, which is one.
static Index64 | nonLeafCount ()
| Return the non-leaf count for this node, which is zero.
static Index32 | childCount ()
| Return the child count for this node, which is zero.
static Index64 | onTileCount ()
static Index64 | offTileCount ()
static Index | coordToOffset (const Coord &xyz)
| Return the linear table offset of the given global or local coordinates.
static Coord | offsetToLocalCoord (Index n)
| Return the local coordinates for a linear table offset, where offset 0 has coordinates (0, 0, 0).
static Index | getValueLevel (const Coord &)
| Return the level (i.e., 0) at which leaf node values reside.
static bool | hasActiveTiles ()
| Return `false` since leaf nodes never contain tiles.
static Index | getValueLevelAndCache (const Coord &, AccessorT &)
| Return the LEVEL (=0) at which leaf node values reside.

## Static Public Attributes
static const Index | LOG2DIM
static const Index | TOTAL
static const Index | DIM
static const Index | NUM_VALUES
static const Index | NUM_VOXELS
static const Index | SIZE
static const Index | LEVEL
static const bool | IsSparseIterator
static const bool | IsDenseIterator

## Protected Types
using | MaskOnIterator
using | MaskOffIterator
using | MaskDenseIterator

## Protected Member Functions
void | setValueMask (Index n, bool on)
void | setValueMaskOn (Index n)
void | setValueMaskOff (Index n)
void | skipCompressedValues (bool seekable, std::istream &, bool fromHalf)

## Static Protected Member Functions
static void | evalNodeOrigin (Coord &xyz)
| Compute the origin of the leaf node that contains the voxel with the given coordinates.

## Friends
class | ::TestLeaf
class | ::TestLeafIO
class | LeafNode
struct | ValueIter< MaskOnIterator, LeafNode, ValueType, ValueOn >
struct | ValueIter< MaskOffIterator, LeafNode, ValueType, ValueOff >
struct | ValueIter< MaskDenseIterator, LeafNode, ValueType, ValueAll >
struct | ValueIter< MaskOnIterator, const LeafNode, ValueType, ValueOn >
struct | ValueIter< MaskOffIterator, const LeafNode, ValueType, ValueOff >
struct | ValueIter< MaskDenseIterator, const LeafNode, ValueType, ValueAll >
class | IteratorBase< MaskOnIterator, LeafNode >
class | IteratorBase< MaskOffIterator, LeafNode >
class | IteratorBase< MaskDenseIterator, LeafNode >

## Member Typedef Documentation

## ◆ BaseT [1/2]

using BaseT

## ◆ BaseT [2/2]

template<Index Log2Dim>
template<typename NodeT, typename ValueT>

using BaseT = DenseIteratorBase<MaskDenseIter, DenseIter, NodeT, void, ValueT>

## ◆ Buffer

using Buffer

## ◆ BuildType

using BuildType

## ◆ ChildAllCIter

using ChildAllCIter

## ◆ ChildAllIter

using ChildAllIter

## ◆ ChildNodeType

using ChildNodeType
| inherited

## ◆ ChildOffCIter

using ChildOffCIter

## ◆ ChildOffIter

using ChildOffIter

## ◆ ChildOnCIter

using ChildOnCIter

## ◆ ChildOnIter

using ChildOnIter

## ◆ LeafNodeType

using LeafNodeType

## ◆ MaskDenseIterator

using MaskDenseIterator
| protected

## ◆ MaskOffIterator

using MaskOffIterator
| protected

## ◆ MaskOnIterator

using MaskOnIterator
| protected

## ◆ NodeMaskType

using NodeMaskType

## ◆ NodeType

using NodeType
| inherited

## ◆ NonConstChildNodeType

using NonConstChildNodeType
| inherited

## ◆ NonConstNodeType

using NonConstNodeType
| inherited

## ◆ NonConstValueT [1/2]

using NonConstValueT

## ◆ NonConstValueT [2/2]

template<Index Log2Dim>
template<typename NodeT, typename ValueT>

using NonConstValueT = typename BaseT::NonConstValueType

## ◆ NonConstValueType

using NonConstValueType
| inherited

## ◆ Ptr

using Ptr

## ◆ ValueAllCIter

using ValueAllCIter

## ◆ ValueAllIter

using ValueAllIter

## ◆ ValueOffCIter

using ValueOffCIter

## ◆ ValueOffIter

using ValueOffIter

## ◆ ValueOnCIter

using ValueOnCIter

## ◆ ValueOnIter

using ValueOnIter

## ◆ ValueType

using ValueType

## Constructor & Destructor Documentation

## ◆ DenseIter() [1/4]

template<Index Log2Dim>
template<typename NodeT, typename ValueT>

DenseIter | ( |  | ) |
| inline

## ◆ DenseIter() [2/4]

template<Index Log2Dim>
template<typename NodeT, typename ValueT>

DenseIter | ( | const MaskDenseIter & | iter,
|  | NodeT * | parent )
| inline

## ◆ DenseIter() [3/4]

DenseIter | ( |  | ) |
| inline

## ◆ DenseIter() [4/4]

DenseIter | ( | const MaskDenseIterator & | iter,
|  | NodeT * | parent )
| inline

## ◆ ~LeafNode()

~LeafNode | ( |  | ) |
| inline

Destructor.

## Member Function Documentation

## ◆ addLeaf()

void addLeaf | ( | LeafNode< bool, Log2Dim > * |  | ) |
| inline

## ◆ addLeafAndCache()

void addLeafAndCache | ( | LeafNode< bool, Log2Dim > * | ,
|  | AccessorT & | )
| inline

## ◆ addTile() [1/2]

void addTile | ( | Index | level,
|  | const Coord & | xyz,
|  | const ValueType & | val,
|  | bool | active )
| inline

## ◆ addTile() [2/2]

void addTile | ( | Index | offset,
|  | const ValueType & | val,
|  | bool | active )
| inline

## ◆ addTileAndCache() [1/3]

void addTileAndCache | ( | Index | level,
|  | const Coord & | xyz,
|  | bool | val,
|  | bool | active,
|  | AccessorT & | )
| inline

## ◆ addTileAndCache() [2/3]

void addTileAndCache | ( | Index | level,
|  | const Coord & | xyz,
|  | bool | val,
|  | bool | active,
|  | AccessorT & | )
| inline

## ◆ addTileAndCache() [3/3]

void addTileAndCache | ( | Index | level,
|  | const Coord & | xyz,
|  | const ValueType & | val,
|  | bool | active,
|  | AccessorT & | )
| inline

## ◆ allocate()

bool allocate | ( |  | ) |
| inline

Allocate memory for this node's buffer if it has not already been allocated.

## ◆ beginChildAll() [1/2]

ChildAllIter beginChildAll | ( |  | ) |
| inline

## ◆ beginChildAll() [2/2]

ChildAllCIter beginChildAll | ( |  | ) | const
| inline

## ◆ beginChildOff() [1/2]

ChildOffIter beginChildOff | ( |  | ) |
| inline

## ◆ beginChildOff() [2/2]

ChildOffCIter beginChildOff | ( |  | ) | const
| inline

## ◆ beginChildOn() [1/2]

ChildOnIter beginChildOn | ( |  | ) |
| inline

## ◆ beginChildOn() [2/2]

ChildOnCIter beginChildOn | ( |  | ) | const
| inline

## ◆ beginValueAll() [1/2]

ValueAllIter beginValueAll | ( |  | ) |
| inline

## ◆ beginValueAll() [2/2]

ValueAllCIter beginValueAll | ( |  | ) | const
| inline

## ◆ beginValueOff() [1/2]

ValueOffIter beginValueOff | ( |  | ) |
| inline

## ◆ beginValueOff() [2/2]

ValueOffCIter beginValueOff | ( |  | ) | const
| inline

## ◆ beginValueOn() [1/2]

ValueOnIter beginValueOn | ( |  | ) |
| inline

## ◆ beginValueOn() [2/2]

ValueOnCIter beginValueOn | ( |  | ) | const
| inline

## ◆ buffer() [1/2]

Buffer & buffer | ( |  | ) |
| inline

## ◆ buffer() [2/2]

const Buffer & buffer | ( |  | ) | const
| inline

## ◆ cbeginChildAll()

ChildAllCIter cbeginChildAll | ( |  | ) | const
| inline

## ◆ cbeginChildOff()

ChildOffCIter cbeginChildOff | ( |  | ) | const
| inline

## ◆ cbeginChildOn()

ChildOnCIter cbeginChildOn | ( |  | ) | const
| inline

## ◆ cbeginValueAll()

ValueAllCIter cbeginValueAll | ( |  | ) | const
| inline

## ◆ cbeginValueOff()

ValueOffCIter cbeginValueOff | ( |  | ) | const
| inline

## ◆ cbeginValueOn()

ValueOnCIter cbeginValueOn | ( |  | ) | const
| inline

## ◆ cendChildAll()

ChildAllCIter cendChildAll | ( |  | ) | const
| inline

## ◆ cendChildOff()

ChildOffCIter cendChildOff | ( |  | ) | const
| inline

## ◆ cendChildOn()

ChildOnCIter cendChildOn | ( |  | ) | const
| inline

## ◆ cendValueAll()

ValueAllCIter cendValueAll | ( |  | ) | const
| inline

## ◆ cendValueOff()

ValueOffCIter cendValueOff | ( |  | ) | const
| inline

## ◆ cendValueOn()

ValueOnCIter cendValueOn | ( |  | ) | const
| inline

## ◆ childCount()

static Index32 childCount | ( |  | ) |
| inlinestatic

Return the child count for this node, which is zero.

## ◆ clip()

void clip | ( | const CoordBBox & | clipBBox,
|  | const ValueType & | background )
| inline

Set all voxels that lie outside the given axis-aligned box to the background.

## ◆ combine() [1/4]

void combine | ( | bool | value,
|  | bool | valueIsActive,
|  | CombineOp & | op )
| inline

## ◆ combine() [2/4]

void combine | ( | bool | value,
|  | bool | valueIsActive,
|  | CombineOp & | op )
| inline

## ◆ combine() [3/4]

void combine | ( | const LeafNode< bool, Log2Dim > & | other,
|  | CombineOp & | op )
| inline

## ◆ combine() [4/4]

void combine | ( | const ValueType & | value,
|  | bool | valueIsActive,
|  | CombineOp & | op )
| inline

## ◆ combine2() [1/5]

void combine2 | ( | bool | value,
|  | const OtherNodeT & | other,
|  | bool | valueIsActive,
|  | CombineOp & | op )
| inline

## ◆ combine2() [2/5]

void combine2 | ( | bool | value,
|  | const OtherNodeT & | other,
|  | bool | valueIsActive,
|  | CombineOp & | op )
| inline

## ◆ combine2() [3/5]

void combine2 | ( | const LeafNode< bool, Log2Dim > & | b0,
|  | const OtherNodeT & | b1,
|  | CombineOp & | op )
| inline

## ◆ combine2() [4/5]

void combine2 | ( | const LeafNode< bool, Log2Dim > & | other,
|  | const OtherType & | value,
|  | bool | valueIsActive,
|  | CombineOp & | op )
| inline

## ◆ combine2() [5/5]

void combine2 | ( | const ValueType & | value,
|  | const OtherNodeT & | other,
|  | bool | valueIsActive,
|  | CombineOp & | op )
| inline

## ◆ coordToOffset()

Index coordToOffset | ( | const Coord & | xyz | ) |
| inlinestatic

Return the linear table offset of the given global or local coordinates.

## ◆ copyFromDense() [1/3]

void copyFromDense | ( | const CoordBBox & | bbox,
|  | const DenseT & | dense,
|  | bool | background,
|  | bool | tolerance )
| inline

## ◆ copyFromDense() [2/3]

void copyFromDense | ( | const CoordBBox & | bbox,
|  | const DenseT & | dense,
|  | bool | background,
|  | bool | tolerance )
| inline

## ◆ copyFromDense() [3/3]

void copyFromDense | ( | const CoordBBox & | bbox,
|  | const DenseT & | dense,
|  | const ValueType & | background,
|  | const ValueType & | tolerance )
| inline

Copy from a dense grid into this node the values of the voxels that lie within a given bounding box.

Only values that are different (by more than the given tolerance) from the background value will be active. Other values are inactive and truncated to the background value.

Parameters

  bbox | inclusive bounding box of the voxels to be copied into this node
  dense | dense grid with a stride in z of one (see tools::Dense in tools/Dense.h for the required API)
  background | background value of the tree that this node belongs to
  tolerance | tolerance within which a value equals the background value

Note
  bbox is assumed to be identical to or contained in the coordinate domains of both the dense grid and this node, i.e., no bounds checking is performed.
  Consider using tools::CopyFromDense in tools/Dense.h instead of calling this method directly.

## ◆ copyToDense()

void copyToDense | ( | const CoordBBox & | bbox,
|  | DenseT & | dense ) const
| inline

Copy into a dense grid the values of the voxels that lie within a given bounding box.

Parameters

  bbox | inclusive bounding box of the voxels to be copied into the dense grid
  dense | dense grid with a stride in z of one (see tools::Dense in tools/Dense.h for the required API)

Note
  bbox is assumed to be identical to or contained in the coordinate domains of both the dense grid and this node, i.e., no bounds checking is performed.
  Consider using tools::CopyToDense in tools/Dense.h instead of calling this method directly.

## ◆ denseFill()

void denseFill | ( | const CoordBBox & | bbox,
|  | const ValueType & | value,
|  | bool | active = true )
| inline

Set all voxels within an axis-aligned box to the specified value and active state.

## ◆ dim()

static Index dim | ( |  | ) |
| inlinestatic

Return the number of voxels in each coordinate dimension.

## ◆ endChildAll() [1/2]

ChildAllIter endChildAll | ( |  | ) |
| inline

## ◆ endChildAll() [2/2]

ChildAllCIter endChildAll | ( |  | ) | const
| inline

## ◆ endChildOff() [1/2]

ChildOffIter endChildOff | ( |  | ) |
| inline

## ◆ endChildOff() [2/2]

ChildOffCIter endChildOff | ( |  | ) | const
| inline

## ◆ endChildOn() [1/2]

ChildOnIter endChildOn | ( |  | ) |
| inline

## ◆ endChildOn() [2/2]

ChildOnCIter endChildOn | ( |  | ) | const
| inline

## ◆ endValueAll() [1/2]

ValueAllIter endValueAll | ( |  | ) |
| inline

## ◆ endValueAll() [2/2]

ValueAllCIter endValueAll | ( |  | ) | const
| inline

## ◆ endValueOff() [1/2]

ValueOffIter endValueOff | ( |  | ) |
| inline

## ◆ endValueOff() [2/2]

ValueOffCIter endValueOff | ( |  | ) | const
| inline

## ◆ endValueOn() [1/2]

ValueOnIter endValueOn | ( |  | ) |
| inline

## ◆ endValueOn() [2/2]

ValueOnCIter endValueOn | ( |  | ) | const
| inline

## ◆ evalActiveBoundingBox()

void evalActiveBoundingBox | ( | CoordBBox & | bbox,
|  | bool | visitVoxels = true ) const
| inline

Expand the given bounding box so that it includes this leaf node's active voxels. If visitVoxels is false this LeafNode will be approximated as dense, i.e. with all voxels active. Else the individual active voxels are visited to produce a tight bbox.

## ◆ evalNodeOrigin()

static void evalNodeOrigin | ( | Coord & | xyz | ) |
| inlinestaticprotected

Compute the origin of the leaf node that contains the voxel with the given coordinates.

## ◆ fill() [1/3]

void fill | ( | const CoordBBox & | bbox,
|  | const ValueType & | value,
|  | bool | active = true )
| inline

Set all voxels within an axis-aligned box to the specified value and active state.

## ◆ fill() [2/3]

void fill | ( | const ValueType & | value | ) |
| inline

Set all voxels to the specified value but don't change their active states.

## ◆ fill() [3/3]

void fill | ( | const ValueType & | value,
|  | bool | active )
| inline

Set all voxels to the specified value and active state.

## ◆ getChildDim()

static Index getChildDim | ( |  | ) |
| inlinestatic

Return the dimension of child nodes of this LeafNode, which is one for voxels.

## ◆ getCoord() [1/2]

Coord getCoord | ( |  | ) | const
| inlineinherited

Return the coordinates of the item to which this iterator is pointing.

## ◆ getCoord() [2/2]

void getCoord | ( | Coord & | xyz | ) | const
| inlineinherited

Return in xyz the coordinates of the item to which this iterator is pointing.

## ◆ getFirstValue()

const ValueType & getFirstValue | ( |  | ) | const
| inline

Return a const reference to the first value in the buffer.

Note
  Though it is potentially risky you can convert this to a non-const pointer by means of const_case<ValueType*>&.

## ◆ getItem() [1/2]

bool getItem | ( | Index | pos,
|  | void *& | child,
|  | NonConstValueT & | value ) const
| inline

## ◆ getItem() [2/2]

template<Index Log2Dim>
template<typename NodeT, typename ValueT>

bool getItem | ( | Index | pos,
|  | void *& | child,
|  | NonConstValueT & | value ) const
| inline

## ◆ getLastValue()

const ValueType & getLastValue | ( |  | ) | const
| inline

Return a const reference to the last value in the buffer.

## ◆ getLevel()

static Index getLevel | ( |  | ) |
| inlinestatic

Return the level of this node, which by definition is zero for LeafNodes.

## ◆ getNodeBoundingBox()

CoordBBox getNodeBoundingBox | ( |  | ) | const
| inline

Return the bounding box of this node, i.e., the full index space spanned by this leaf node.

## ◆ getNodeLog2Dims()

static void getNodeLog2Dims | ( | std::vector< Index > & | dims | ) |
| inlinestatic

Append the Log2Dim of this LeafNode to the specified vector.

## ◆ getNodes()

void getNodes | ( | ArrayT & |  | ) | const
| inline

## ◆ getOrigin() [1/2]

void getOrigin | ( | Coord & | origin | ) | const
| inline

## ◆ getOrigin() [2/2]

void getOrigin | ( | Int32 & | x,
|  | Int32 & | y,
|  | Int32 & | z ) const
| inline

## ◆ getParentNode()

NodeT * getParentNode | ( |  | ) | const
| inlineinherited

Return a pointer to the node (if any) over which this iterator is iterating.

## ◆ getValue() [1/3]

const bool & getValue | ( | const Coord & | xyz | ) | const
| inline

Return the value of the voxel at the given coordinates.

## ◆ getValue() [2/3]

const ValueType & getValue | ( | const Coord & | xyz,
|  | bool & | state,
|  | int & | level,
|  | AccessorT & | ) const
| inline

Return the value of the voxel at the given coordinates and return its active state and level (i.e., 0) in state and level.

Note
  Used internally by ValueAccessor.

## ◆ getValue() [3/3]

const bool & getValue | ( | Index | offset | ) | const
| inline

Return the value of the voxel at the given linear offset.

## ◆ getValueAndCache()

const ValueType & getValueAndCache | ( | const Coord & | xyz,
|  | AccessorT & | ) const
| inline

Return the value of the voxel at the given coordinates.

Note
  Used internally by ValueAccessor.

## ◆ getValueLevel()

static Index getValueLevel | ( | const Coord & |  | ) |
| inlinestatic

Return the level (i.e., 0) at which leaf node values reside.

## ◆ getValueLevelAndCache()

static Index getValueLevelAndCache | ( | const Coord & | ,
|  | AccessorT & | )
| inlinestatic

Return the LEVEL (=0) at which leaf node values reside.

Note
  Used internally by ValueAccessor (note last argument is a dummy).

## ◆ getValueMask() [1/2]

NodeMaskType & getValueMask | ( |  | ) |
| inline

## ◆ getValueMask() [2/2]

const NodeMaskType & getValueMask | ( |  | ) | const
| inline

## ◆ getValueUnsafe() [1/2]

const ValueType & getValueUnsafe | ( | Index | offset | ) | const
| inline

Return the value of the voxel at the given offset.

## ◆ getValueUnsafe() [2/2]

bool getValueUnsafe | ( | Index | offset,
|  | ValueType & | value ) const
| inline

Return true if the voxel at the given offset is active and set value.

## ◆ hasActiveTiles()

static bool hasActiveTiles | ( |  | ) |
| inlinestatic

Return `false` since leaf nodes never contain tiles.

## ◆ hasSameTopology()

bool hasSameTopology | ( | const LeafNode< OtherType, OtherLog2Dim > * | other | ) | const
| inline

Return `true` if the given node (which may have a different `ValueType` than this node) has the same active value topology as this node.

## ◆ increment() [1/2]

void increment | ( |  | ) |
| inlineinherited

Advance to the next item in the parent node's table.

## ◆ increment() [2/2]

void increment | ( | Index | n | ) |
| inlineinherited

Advance n items in the parent node's table.

## ◆ isAllocated()

bool isAllocated | ( |  | ) | const
| inline

Return `true` if memory for this node's buffer has been allocated.

## ◆ isChildMaskOff() [1/2]

bool isChildMaskOff | ( |  | ) | const
| inline

## ◆ isChildMaskOff() [2/2]

bool isChildMaskOff | ( | Index |  | ) | const
| inline

## ◆ isChildMaskOn()

bool isChildMaskOn | ( | Index |  | ) | const
| inline

## ◆ isChildNode()

bool isChildNode | ( |  | ) | const
| inlineinherited

Return `true` if this iterator is pointing to a child node.

## ◆ isConstant() [1/2]

bool isConstant | ( | ValueType & | firstValue,
|  | bool & | state,
|  | const ValueType & | tolerance = zeroVal<ValueType>() ) const
| inline

Return `true` if all of this node's values have the same active state and are in the range this->getFirstValue() +/- tolerance.

Parameters

  firstValue | Is updated with the first value of this leaf node.
  state | Is updated with the state of all values IF method returns `true`. Else the value is undefined!
  tolerance | The tolerance used to determine if values are approximately equal to the for value.

## ◆ isConstant() [2/2]

bool isConstant | ( | ValueType & | minValue,
|  | ValueType & | maxValue,
|  | bool & | state,
|  | const ValueType & | tolerance = zeroVal<ValueType>() ) const
| inline

Return `true` if all of this node's values have the same active state and the range (maxValue - minValue) < tolerance.

Parameters

  minValue | Is updated with the minimum of all values IF method returns `true`. Else the value is undefined!
  maxValue | Is updated with the maximum of all values IF method returns `true`. Else the value is undefined!
  state | Is updated with the state of all values IF method returns `true`. Else the value is undefined!
  tolerance | The tolerance used to determine if values are approximately constant.

## ◆ isDense()

bool isDense | ( |  | ) | const
| inline

Return `true` if this node contains only active voxels.

## ◆ isEmpty()

bool isEmpty | ( |  | ) | const
| inline

Return `true` if this node has no active voxels.

## ◆ isInactive()

bool isInactive | ( |  | ) | const
| inline

Return `true` if all of this node's values are inactive.

## ◆ isValueMaskOff() [1/2]

bool isValueMaskOff | ( |  | ) | const
| inline

## ◆ isValueMaskOff() [2/2]

bool isValueMaskOff | ( | Index | n | ) | const
| inline

## ◆ isValueMaskOn() [1/2]

bool isValueMaskOn | ( |  | ) | const
| inline

## ◆ isValueMaskOn() [2/2]

bool isValueMaskOn | ( | Index | n | ) | const
| inline

## ◆ isValueOff() [1/2]

bool isValueOff | ( | const Coord & | xyz | ) | const
| inline

Return `true` if the voxel at the given coordinates is inactive.

## ◆ isValueOff() [2/2]

bool isValueOff | ( | Index | offset | ) | const
| inline

Return `true` if the voxel at the given offset is inactive.

## ◆ isValueOn() [1/3]

bool isValueOn | ( |  | ) | const
| inlineinherited

Return `true` if this iterator is pointing to an active value. Return `false` if it is pointing to either an inactive value or a child node.

## ◆ isValueOn() [2/3]

bool isValueOn | ( | const Coord & | xyz | ) | const
| inline

Return `true` if the voxel at the given coordinates is active.

## ◆ isValueOn() [3/3]

bool isValueOn | ( | Index | offset | ) | const
| inline

Return `true` if the voxel at the given offset is active.

## ◆ isValueOnAndCache()

bool isValueOnAndCache | ( | const Coord & | xyz,
|  | AccessorT & | ) const
| inline

Return `true` if the voxel at the given coordinates is active.

Note
  Used internally by ValueAccessor.

## ◆ leafCount()

static Index64 leafCount | ( |  | ) |
| inlinestatic

Return the leaf count for this node, which is one.

## ◆ LeafNode() [1/21]

LeafNode | ( |  | ) |
| inline

Default constructor.

## ◆ LeafNode() [2/21]

LeafNode | ( | const Coord & | coords,
|  | const ValueType & | value = zeroVal<ValueType>(),
|  | bool | active = false )
| inlineexplicit

Constructor.

Parameters

  coords | the grid index coordinates of a voxel
  value | a value with which to fill the buffer
  active | the active state to which to initialize all voxels

## ◆ LeafNode() [3/21]

LeafNode | ( | const Coord & | xyz,
|  | bool | value,
|  | bool | active )
| inline

## ◆ LeafNode() [4/21]

LeafNode | ( | const Coord & | xyz,
|  | bool | value,
|  | bool | active )
| inline

## ◆ LeafNode() [5/21]

LeafNode | ( | const Coord & | xyz,
|  | const NodeMaskType & | mask,
|  | const Buffer & | buff,
|  | const Index32 | trans )
| inline

## ◆ LeafNode() [6/21]

LeafNode | ( | const Coord & | xyz,
|  | const NodeMaskType & | mask,
|  | const Buffer & | buff,
|  | const Index32 | trans )
| inline

## ◆ LeafNode() [7/21]

LeafNode | ( | const LeafNode< bool, Log2Dim > & | other | ) |
| inline

Deep copy constructor.

## ◆ LeafNode() [8/21]

LeafNode | ( | const LeafNode< OtherValueType, Log2Dim > & | other | ) |
| inlineexplicit

Value conversion copy constructor.

## ◆ LeafNode() [9/21]

LeafNode | ( | const LeafNode< OtherValueType, Log2Dim > & | other,
|  | const ValueType & | background,
|  | TopologyCopy | )
| inline

Topology copy constructor.

## ◆ LeafNode() [10/21]

LeafNode | ( | const LeafNode< OtherValueType, Log2Dim > & | other,
|  | const ValueType & | offValue,
|  | const ValueType & | onValue,
|  | TopologyCopy | )
| inline

Topology copy constructor.

## ◆ LeafNode() [11/21]

LeafNode | ( | const LeafNode< ValueT, Log2Dim > & | other | ) |
| inline

## ◆ LeafNode() [12/21]

LeafNode | ( | const LeafNode< ValueT, Log2Dim > & | other | ) |
| inline

## ◆ LeafNode() [13/21]

LeafNode | ( | const LeafNode< ValueT, Log2Dim > & | other,
|  | bool | background,
|  | TopologyCopy | )
| inline

## ◆ LeafNode() [14/21]

LeafNode | ( | const LeafNode< ValueT, Log2Dim > & | other,
|  | bool | background,
|  | TopologyCopy | )
| inline

## ◆ LeafNode() [15/21]

LeafNode | ( | const LeafNode< ValueT, Log2Dim > & | other,
|  | bool | offValue,
|  | bool | onValue,
|  | TopologyCopy | )
| inline

## ◆ LeafNode() [16/21]

LeafNode | ( | const LeafNode< ValueT, Log2Dim > & | other,
|  | bool | offValue,
|  | bool | onValue,
|  | TopologyCopy | )
| inline

## ◆ LeafNode() [17/21]

LeafNode | ( | const LeafNode< ValueT, Log2Dim > & | other,
|  | TopologyCopy | )
| inline

## ◆ LeafNode() [18/21]

LeafNode | ( | const LeafNode< ValueT, Log2Dim > & | other,
|  | TopologyCopy | )
| inline

## ◆ LeafNode() [19/21]

LeafNode | ( | PartialCreate | ,
|  | const Coord & | coords,
|  | const ValueType & | value = zeroVal<ValueType>(),
|  | bool | active = false )
| inline

"Partial creation" constructor used during file input

Parameters

  coords | the grid index coordinates of a voxel
  value | a value with which to fill the buffer
  active | the active state to which to initialize all voxels

This constructor does not allocate memory for voxel values.

## ◆ LeafNode() [20/21]

LeafNode | ( | PartialCreate | ,
|  | const Coord & | xyz,
|  | bool | value,
|  | bool | active )
| inline

## ◆ LeafNode() [21/21]

LeafNode | ( | PartialCreate | ,
|  | const Coord & | xyz,
|  | bool | value,
|  | bool | active )
| inline

## ◆ log2dim()

static Index log2dim | ( |  | ) |
| inlinestatic

Return log2 of the dimension of this LeafNode, e.g. 3 if dimensions are 8^3.

## ◆ medianAll()

bool medianAll | ( | ValueType * | tmp = nullptr | ) | const
| inline

Computes the median value of all the active AND inactive voxels in this node.

Returns
  The median value of all values in this node.

Parameters

  tmp | Optional temporary storage that can hold at least NUM_VALUES values Use of this temporary storage can improve performance when this method is called multiple times.

Note
  If tmp = this->buffer().data() then the median value is computed very efficiently (in place) but the voxel values in this node are re-shuffled!

Warning
  If tmp != nullptr then it is the responsibility of the client code that it points to enough memory to hold NUM_VALUES elements of type ValueType.

## ◆ medianOff()

Index medianOff | ( | ValueType & | value,
|  | ValueType * | tmp = nullptr ) const
| inline

Computes the median value of all the inactive voxels in this node.

Returns
  The number of inactive voxels.

Parameters

  value | If the return value is non zero value is updated with the median value.
  tmp | Optional temporary storage that can hold at least as many values as there are inactive voxels in this node. Use of this temporary storage can improve performance when this method is called multiple times.

Warning
  If tmp != nullptr then it is the responsibility of the client code that it points to enough memory to hold the number of inactive voxels of type ValueType.

## ◆ medianOn()

Index medianOn | ( | ValueType & | value,
|  | ValueType * | tmp = nullptr ) const
| inline

Computes the median value of all the active voxels in this node.

Returns
  The number of active voxels.

Parameters

  value | If the return value is non zero value is updated with the median value.
  tmp | Optional temporary storage that can hold at least as many values as there are active voxels in this node. Use of this temporary storage can improve performance when this method is called multiple times.

Warning
  If tmp != nullptr then it is the responsibility of the client code that it points to enough memory to hold the number of active voxels of type ValueType.

## ◆ memUsage()

Index64 memUsage | ( |  | ) | const
| inline

Return the memory in bytes occupied by this node.

## ◆ memUsageIfLoaded()

Index64 memUsageIfLoaded | ( |  | ) | const
| inline

## ◆ merge() [1/7]

void merge | ( | bool | tileValue,
|  | bool | tileActive )
| inline

## ◆ merge() [2/7]

void merge | ( | bool | tileValue,
|  | bool | tileActive )
| inline

## ◆ merge() [3/7]

void merge | ( | const LeafNode< bool, Log2Dim > & | other | ) |
| inline

## ◆ merge() [4/7]

void merge | ( | const LeafNode< bool, Log2Dim > & | other,
|  | bool | ,
|  | bool | )
| inline

## ◆ merge() [5/7]

void merge | ( | const LeafNode< bool, Log2Dim > & | other,
|  | bool | ,
|  | bool | )
| inline

## ◆ merge() [6/7]

void merge | ( | const LeafNode< bool, Log2Dim > & | other,
|  | const ValueType & | ,
|  | const ValueType & | )
| inline

## ◆ merge() [7/7]

void merge | ( | const ValueType & | tileValue,
|  | bool | tileActive )
| inline

## ◆ modifyValue() [1/2]

void modifyValue | ( | const Coord & | xyz,
|  | const ModifyOp & | op )
| inline

Apply a functor to the value of the voxel at the given coordinates and mark the voxel as active.

## ◆ modifyValue() [2/2]

void modifyValue | ( | Index | offset,
|  | const ModifyOp & | op )
| inline

Apply a functor to the value of the voxel at the given offset and mark the voxel as active.

## ◆ modifyValueAndActiveState()

void modifyValueAndActiveState | ( | const Coord & | xyz,
|  | const ModifyOp & | op )
| inline

Apply a functor to the voxel at the given coordinates.

## ◆ modifyValueAndActiveStateAndCache()

void modifyValueAndActiveStateAndCache | ( | const Coord & | xyz,
|  | const ModifyOp & | op,
|  | AccessorT & | )
| inline

Apply a functor to the voxel at the given coordinates.

Note
  Used internally by ValueAccessor.

## ◆ modifyValueAndCache()

void modifyValueAndCache | ( | const Coord & | xyz,
|  | const ModifyOp & | op,
|  | AccessorT & | )
| inline

Apply a functor to the value of the voxel at the given coordinates and mark the voxel as active.

Note
  Used internally by ValueAccessor.

## ◆ negate()

void negate | ( |  | ) |
| inline

## ◆ next()

bool next | ( |  | ) |
| inlineinherited

Advance to the next item in the parent node's table.

## ◆ nodeCount() [1/2]

void nodeCount | ( | std::vector< Index32 > & |  | ) | const
| inline

Deprecated
  "Use input type std::vector<Index64> for nodeCount."

## ◆ nodeCount() [2/2]

void nodeCount | ( | std::vector< Index64 > & |  | ) | const
| inline

no-op

## ◆ nonLeafCount()

static Index64 nonLeafCount | ( |  | ) |
| inlinestatic

Return the non-leaf count for this node, which is zero.

## ◆ numValues()

static Index numValues | ( |  | ) |
| inlinestatic

Return the total number of voxels represented by this LeafNode.

## ◆ offLeafVoxelCount()

Index64 offLeafVoxelCount | ( |  | ) | const
| inline

## ◆ offset()

Index offset | ( |  | ) | const
| inlineinherited

Return this iterator's position as an index into the parent node's table.

## ◆ offsetToGlobalCoord()

Coord offsetToGlobalCoord | ( | Index | n | ) | const
| inline

Return the global coordinates for a linear table offset.

## ◆ offsetToLocalCoord()

Coord offsetToLocalCoord | ( | Index | n | ) |
| inlinestatic

Return the local coordinates for a linear table offset, where offset 0 has coordinates (0, 0, 0).

## ◆ offTileCount()

static Index64 offTileCount | ( |  | ) |
| inlinestatic

## ◆ offVoxelCount()

Index64 offVoxelCount | ( |  | ) | const
| inline

Return the number of voxels marked Off.

## ◆ onLeafVoxelCount()

Index64 onLeafVoxelCount | ( |  | ) | const
| inline

## ◆ onTileCount()

static Index64 onTileCount | ( |  | ) |
| inlinestatic

## ◆ onVoxelCount()

Index64 onVoxelCount | ( |  | ) | const
| inline

Return the number of voxels marked On.

## ◆ operator bool()

operator bool | ( |  | ) | const
| inlineinherited

Return `true` if this iterator is not yet exhausted.

## ◆ operator!=() [1/2]

bool operator!= | ( | const IteratorBase< MaskDenseIter, NodeT > & | other | ) | const
| inlineinherited

## ◆ operator!=() [2/2]

bool operator!= | ( | const LeafNode< bool, Log2Dim > & | other | ) | const
| inline

## ◆ operator++()

IteratorBase & operator++ | ( |  | ) |
| inlineinherited

Advance to the next item in the parent node's table.

## ◆ operator=()

LeafNode & operator= | ( | const LeafNode< bool, Log2Dim > & |  | ) |
| default

Deep assignment operator.

## ◆ operator==() [1/2]

bool operator== | ( | const IteratorBase< MaskDenseIter, NodeT > & | other | ) | const
| inlineinherited

## ◆ operator==() [2/2]

bool operator== | ( | const LeafNode< bool, Log2Dim > & | other | ) | const
| inline

Check for buffer, state and origin equivalence.

## ◆ origin()

const Coord & origin | ( |  | ) | const
| inline

Return the grid index coordinates of this node's local origin.

## ◆ parent()

NodeT & parent | ( |  | ) | const
| inlineinherited

Return a reference to the node over which this iterator is iterating.

Exceptions

  ValueError | if there is no parent node.

## ◆ pos()

Index pos | ( |  | ) | const
| inlineinherited

Identical to offset.

## ◆ probeChild() [1/2]

void * probeChild | ( | NonConstValueType & | value | ) | const
| inlineinherited

If this iterator is pointing to a child node, return a pointer to the node. Otherwise, return nullptr and, in value, the value to which this iterator is pointing.

## ◆ probeChild() [2/2]

bool probeChild | ( | void *& | child,
|  | NonConstValueType & | value ) const
| inlineinherited

If this iterator is pointing to a child node, return `true` and return a pointer to the child node in child. Otherwise, return `false` and return the value to which this iterator is pointing in value.

## ◆ probeConstLeaf()

const LeafNode * probeConstLeaf | ( | const Coord & |  | ) | const
| inline

Return a `const` pointer to this node.

## ◆ probeConstLeafAndCache()

const LeafNode * probeConstLeafAndCache | ( | const Coord & | ,
|  | AccessorT & | ) const
| inline

## ◆ probeConstNode()

const NodeT * probeConstNode | ( | const Coord & |  | ) | const
| inline

## ◆ probeConstNodeAndCache()

const NodeT * probeConstNodeAndCache | ( | const Coord & | ,
|  | AccessorT & | ) const
| inline

## ◆ probeLeaf() [1/2]

LeafNode * probeLeaf | ( | const Coord & |  | ) |
| inline

## ◆ probeLeaf() [2/2]

const LeafNode * probeLeaf | ( | const Coord & |  | ) | const
| inline

## ◆ probeLeafAndCache() [1/2]

LeafNode * probeLeafAndCache | ( | const Coord & | ,
|  | AccessorT & | )
| inline

## ◆ probeLeafAndCache() [2/2]

const LeafNode * probeLeafAndCache | ( | const Coord & | ,
|  | AccessorT & | ) const
| inline

## ◆ probeNode()

NodeT * probeNode | ( | const Coord & |  | ) |
| inline

## ◆ probeNodeAndCache()

NodeT * probeNodeAndCache | ( | const Coord & | ,
|  | AccessorT & | )
| inline

## ◆ probeValue() [1/3]

bool probeValue | ( | NonConstValueType & | value | ) | const
| inlineinherited

Return `true` if this iterator is pointing to a value and return the value in value. Otherwise, return `false`.

## ◆ probeValue() [2/3]

bool probeValue | ( | const Coord & | xyz,
|  | ValueType & | val ) const
| inline

Return `true` if the voxel at the given coordinates is active.

Parameters

  | xyz | the coordinates of the voxel to be probed
  [out] | val | the value of the voxel at the given coordinates

## ◆ probeValue() [3/3]

bool probeValue | ( | Index | offset,
|  | ValueType & | val ) const
| inline

Return `true` if the voxel at the given offset is active.

Parameters

  | offset | the linear offset of the voxel to be probed
  [out] | val | the value of the voxel at the given coordinates

## ◆ probeValueAndCache()

bool probeValueAndCache | ( | const Coord & | xyz,
|  | ValueType & | val,
|  | AccessorT & | ) const
| inline

Return `true` if the voxel at the given coordinates is active and return the voxel value in val.

Note
  Used internally by ValueAccessor.

## ◆ prune()

void prune | ( | const ValueType & | = zeroVal<ValueType>() | ) |
| inline

This function exists only to enable template instantiation.

## ◆ readBuffers() [1/2]

void readBuffers | ( | std::istream & | is,
|  | bool | fromHalf = false )
| inline

Read buffers from a stream.

Parameters

  is | the stream from which to read
  fromHalf | if true, floating-point input values are assumed to be 16-bit

## ◆ readBuffers() [2/2]

void readBuffers | ( | std::istream & | is,
|  | const CoordBBox & | bbox,
|  | bool | fromHalf = false )
| inline

Read buffers that intersect the given bounding box.

Parameters

  is | the stream from which to read
  bbox | an index-space bounding box
  fromHalf | if true, floating-point input values are assumed to be 16-bit

## ◆ readTopology()

void readTopology | ( | std::istream & | is,
|  | bool | fromHalf = false )
| inline

Read in just the topology.

Parameters

  is | the stream from which to read
  fromHalf | if true, floating-point input values are assumed to be 16-bit

## ◆ resetBackground()

void resetBackground | ( | const ValueType & | oldBackground,
|  | const ValueType & | newBackground )
| inline

Replace inactive occurrences of oldBackground with newBackground, and inactive occurrences of -oldBackground with -newBackground.

## ◆ setActiveState() [1/2]

void setActiveState | ( | const Coord & | xyz,
|  | bool | on )
| inline

Set the active state of the voxel at the given coordinates but don't change its value.

## ◆ setActiveState() [2/2]

void setActiveState | ( | Index | offset,
|  | bool | on )
| inline

Set the active state of the voxel at the given offset but don't change its value.

## ◆ setActiveStateAndCache()

void setActiveStateAndCache | ( | const Coord & | xyz,
|  | bool | on,
|  | AccessorT & | )
| inline

Set the active state of the voxel at the given coordinates without changing its value.

Note
  Used internally by ValueAccessor.

## ◆ setActiveStateUnsafe()

void setActiveStateUnsafe | ( | Index | offset,
|  | bool | on )
| inline

Set the active state of the voxel at the given offset but don't change its value.

## ◆ setChild()

void setChild | ( | void * | child | ) | const
| inlineinherited

Replace with the given child node the item in the parent node's table to which this iterator is pointing.

## ◆ setItem()

void setItem | ( | Index | ,
|  | void * | ) const
| inherited

Set the value of the item at the given index in the parent node's table.

Note
  All non-const iterator subclasses must implement this accessor.

## ◆ setOrigin()

void setOrigin | ( | const Coord & | origin | ) |
| inline

Set the grid index coordinates of this node's local origin.

## ◆ setTransientData()

void setTransientData | ( | Index32 | transientData | ) |
| inline

Set the transient data value.

## ◆ setValue() [1/2]

void setValue | ( | const ValueT & | value | ) | const
| inlineinherited

Replace with the given value the item in the parent node's table to which this iterator is pointing.

## ◆ setValue() [2/2]

void setValue | ( | const Coord & | xyz,
|  | const ValueType & | val )
| inline

Set the value of the voxel at the given coordinates and mark the voxel as active.

## ◆ setValueAndCache()

void setValueAndCache | ( | const Coord & | xyz,
|  | const ValueType & | val,
|  | AccessorT & | )
| inline

Change the value of the voxel at the given coordinates and mark it as active.

Note
  Used internally by ValueAccessor.

## ◆ setValueMask() [1/2]

void setValueMask | ( | const NodeMaskType & | mask | ) |
| inline

## ◆ setValueMask() [2/2]

void setValueMask | ( | Index | n,
|  | bool | on )
| inlineprotected

## ◆ setValueMaskOff()

void setValueMaskOff | ( | Index | n | ) |
| inlineprotected

## ◆ setValueMaskOn()

void setValueMaskOn | ( | Index | n | ) |
| inlineprotected

## ◆ setValueOff() [1/5]

void setValueOff | ( |  | ) | const
| inlineinherited

If this iterator is pointing to a value, mark the value as inactive.

If this iterator is pointing to a child node, then the current item in the parent node's table is required to be inactive. In that case, this method has no effect.

## ◆ setValueOff() [2/5]

void setValueOff | ( | const Coord & | xyz | ) |
| inline

Mark the voxel at the given coordinates as inactive but don't change its value.

## ◆ setValueOff() [3/5]

void setValueOff | ( | const Coord & | xyz,
|  | const ValueType & | val )
| inline

Set the value of the voxel at the given coordinates and mark the voxel as inactive.

## ◆ setValueOff() [4/5]

void setValueOff | ( | Index | offset | ) |
| inline

Mark the voxel at the given offset as inactive but don't change its value.

## ◆ setValueOff() [5/5]

void setValueOff | ( | Index | offset,
|  | const ValueType & | val )
| inline

Set the value of the voxel at the given offset and mark the voxel as inactive.

## ◆ setValueOffAndCache()

void setValueOffAndCache | ( | const Coord & | xyz,
|  | const ValueType & | value,
|  | AccessorT & | )
| inline

Change the value of the voxel at the given coordinates and mark it as inactive.

Note
  Used internally by ValueAccessor.

## ◆ setValueOffUnsafe() [1/2]

void setValueOffUnsafe | ( | Index | offset | ) |
| inline

Mark the voxel at the given offset as inactive but don't change its value.

## ◆ setValueOffUnsafe() [2/2]

void setValueOffUnsafe | ( | Index | offset,
|  | const ValueType & | value )
| inline

Set the value of the voxel at the given coordinates and mark the voxel as active.

## ◆ setValueOn() [1/5]

void setValueOn | ( | bool | on = true | ) | const
| inlineinherited

If this iterator is pointing to a value, set the value's active state. Otherwise, do nothing.

## ◆ setValueOn() [2/5]

void setValueOn | ( | const Coord & | xyz | ) |
| inline

Mark the voxel at the given coordinates as active but don't change its value.

## ◆ setValueOn() [3/5]

void setValueOn | ( | const Coord & | xyz,
|  | const ValueType & | val )
| inline

Set the value of the voxel at the given coordinates and mark the voxel as active.

## ◆ setValueOn() [4/5]

void setValueOn | ( | Index | offset | ) |
| inline

Mark the voxel at the given offset as active but don't change its value.

## ◆ setValueOn() [5/5]

void setValueOn | ( | Index | offset,
|  | const ValueType & | val )
| inline

Set the value of the voxel at the given offset and mark the voxel as active.

## ◆ setValueOnly() [1/2]

void setValueOnly | ( | const Coord & | xyz,
|  | const ValueType & | val )
| inline

Set the value of the voxel at the given coordinates but don't change its active state.

## ◆ setValueOnly() [2/2]

void setValueOnly | ( | Index | offset,
|  | const ValueType & | val )
| inline

Set the value of the voxel at the given offset but don't change its active state.

## ◆ setValueOnlyAndCache()

void setValueOnlyAndCache | ( | const Coord & | xyz,
|  | const ValueType & | val,
|  | AccessorT & | )
| inline

Change the value of the voxel at the given coordinates but preserve its state.

Note
  Used internally by ValueAccessor.

## ◆ setValueOnlyUnsafe()

void setValueOnlyUnsafe | ( | Index | offset,
|  | const ValueType & | value )
| inline

Set the value of the voxel at the given coordinates but don't change its active state.

## ◆ setValueOnUnsafe() [1/2]

void setValueOnUnsafe | ( | Index | offset | ) |
| inline

Mark the voxel at the given offset as active but don't change its value.

## ◆ setValueOnUnsafe() [2/2]

void setValueOnUnsafe | ( | Index | offset,
|  | const ValueType & | value )
| inline

Set the value of the voxel at the given coordinates and mark the voxel as active.

## ◆ setValuesOff()

void setValuesOff | ( |  | ) |
| inline

Mark all voxels as inactive but don't change their values.

## ◆ setValuesOn()

void setValuesOn | ( |  | ) |
| inline

Mark all voxels as active but don't change their values.

## ◆ size()

static Index size | ( |  | ) |
| inlinestatic

Return the total number of voxels represented by this LeafNode.

## ◆ skipCompressedValues()

void skipCompressedValues | ( | bool | seekable,
|  | std::istream & | is,
|  | bool | fromHalf )
| inlineprotected

## ◆ stealNode()

NodeT * stealNode | ( | const Coord & | ,
|  | const ValueType & | ,
|  | bool | )
| inline

## ◆ stealNodes()

void stealNodes | ( | ArrayT & | ,
|  | const ValueType & | ,
|  | bool | )
| inline

## ◆ str()

std::string str | ( |  | ) | const
| inline

Return a string representation of this node.

## ◆ streamingSize()

size_t streamingSize | ( | bool | toHalf = false | ) | const

## ◆ swap()

void swap | ( | Buffer & | other | ) |
| inline

Exchange this node's data buffer with the given data buffer without changing the active states of the values.

## ◆ test()

bool test | ( |  | ) | const
| inlineinherited

Return `true` if this iterator is not yet exhausted.

## ◆ topologyDifference() [1/3]

void topologyDifference | ( | const LeafNode< OtherType, Log2Dim > & | other,
|  | const bool & | )
| inline

## ◆ topologyDifference() [2/3]

void topologyDifference | ( | const LeafNode< OtherType, Log2Dim > & | other,
|  | const bool & | )
| inline

## ◆ topologyDifference() [3/3]

void topologyDifference | ( | const LeafNode< OtherType, Log2Dim > & | other,
|  | const ValueType & | )
| inline

Difference this node's set of active values with the active values of the other node, whose `ValueType` may be different. So a resulting voxel will be active only if the original voxel is active in this LeafNode and inactive in the other LeafNode.

The last dummy argument is required to match the signature for InternalNode::topologyDifference.

Note
  This operation modifies only active states, not values. Also, because it can deactivate all of this node's voxels, consider subsequently calling prune.

## ◆ topologyIntersection() [1/3]

void topologyIntersection | ( | const LeafNode< OtherType, Log2Dim > & | other,
|  | const bool & | )
| inline

## ◆ topologyIntersection() [2/3]

void topologyIntersection | ( | const LeafNode< OtherType, Log2Dim > & | other,
|  | const bool & | )
| inline

## ◆ topologyIntersection() [3/3]

void topologyIntersection | ( | const LeafNode< OtherType, Log2Dim > & | other,
|  | const ValueType & | )
| inline

Intersect this node's set of active values with the active values of the other node, whose `ValueType` may be different. So a resulting voxel will be active only if both of the original voxels were active.

The last dummy argument is required to match the signature for InternalNode::topologyIntersection.

Note
  This operation modifies only active states, not values. Also note that this operation can result in all voxels being inactive so consider subsequently calling prune.

## ◆ topologyUnion()

void topologyUnion | ( | const LeafNode< OtherType, Log2Dim > & | other,
|  | const bool | preserveTiles = false )
| inline

Union this node's set of active values with the active values of the other node, whose `ValueType` may be different. So a resulting voxel will be active if either of the original voxels were active.

Note
  This operation modifies only active states, not values.

## ◆ touchLeaf()

LeafNode * touchLeaf | ( | const Coord & |  | ) |
| inline

Return a pointer to this node.

## ◆ touchLeafAndCache()

LeafNode * touchLeafAndCache | ( | const Coord & | ,
|  | AccessorT & | )
| inline

## ◆ transientData()

Index32 transientData | ( |  | ) | const
| inline

Return the transient data value.

## ◆ unsetItem() [1/2]

template<Index Log2Dim>
template<typename NodeT, typename ValueT>

void unsetItem | ( | Index | pos,
|  | const ValueT & | val ) const
| inline

## ◆ unsetItem() [2/2]

void unsetItem | ( | Index | pos,
|  | const ValueT & | value ) const
| inline

## ◆ valueMask()

const NodeMaskType & valueMask | ( |  | ) | const
| inline

## ◆ voxelizeActiveTiles()

void voxelizeActiveTiles | ( | bool | = true | ) |
| inline

No-op.

This function exists only to enable template instantiation.

## ◆ writeBuffers()

void writeBuffers | ( | std::ostream & | os,
|  | bool | toHalf = false ) const
| inline

Write buffers to a stream.

Parameters

  os | the stream to which to write
  toHalf | if true, output floating-point values as 16-bit half floats

## ◆ writeTopology()

void writeTopology | ( | std::ostream & | os,
|  | bool | toHalf = false ) const
| inline

Write out just the topology.

Parameters

  os | the stream to which to write
  toHalf | if true, output floating-point values as 16-bit half floats

## Friends And Related Symbol Documentation

## ◆ ::TestLeaf

friend class ::TestLeaf
| friend

## ◆ ::TestLeafIO

friend class ::TestLeafIO
| friend

## ◆ IteratorBase< MaskDenseIterator, LeafNode >

friend class IteratorBase< MaskDenseIterator, LeafNode >
| friend

## ◆ IteratorBase< MaskOffIterator, LeafNode >

friend class IteratorBase< MaskOffIterator, LeafNode >
| friend

## ◆ IteratorBase< MaskOnIterator, LeafNode >

friend class IteratorBase< MaskOnIterator, LeafNode >
| friend

## ◆ LeafNode

friend class LeafNode
| friend

## ◆ ValueIter< MaskDenseIterator, const LeafNode, ValueType, ValueAll >

friend struct ValueIter< MaskDenseIterator, const LeafNode, ValueType, ValueAll >
| friend

## ◆ ValueIter< MaskDenseIterator, LeafNode, ValueType, ValueAll >

friend struct ValueIter< MaskDenseIterator, LeafNode, ValueType, ValueAll >
| friend

## ◆ ValueIter< MaskOffIterator, const LeafNode, ValueType, ValueOff >

friend struct ValueIter< MaskOffIterator, const LeafNode, ValueType, ValueOff >
| friend

## ◆ ValueIter< MaskOffIterator, LeafNode, ValueType, ValueOff >

friend struct ValueIter< MaskOffIterator, LeafNode, ValueType, ValueOff >
| friend

## ◆ ValueIter< MaskOnIterator, const LeafNode, ValueType, ValueOn >

friend struct ValueIter< MaskOnIterator, const LeafNode, ValueType, ValueOn >
| friend

## ◆ ValueIter< MaskOnIterator, LeafNode, ValueType, ValueOn >

friend struct ValueIter< MaskOnIterator, LeafNode, ValueType, ValueOn >
| friend

## Member Data Documentation

## ◆ DIM

const Index DIM
| static

## ◆ IsDenseIterator

const bool IsDenseIterator
| staticinherited

## ◆ IsSparseIterator

const bool IsSparseIterator
| staticinherited

## ◆ LEVEL

const Index LEVEL
| static

## ◆ LOG2DIM

const Index LOG2DIM
| static

## ◆ NUM_VALUES

const Index NUM_VALUES
| static

## ◆ NUM_VOXELS

const Index NUM_VOXELS
| static

## ◆ SIZE

const Index SIZE
| static

## ◆ TOTAL

const Index TOTAL
| static