Loading...
Searching...
No Matches
InternalNode< ChildT > Struct Template Reference

`#include <nanovdb/util/GridBuilder.h>`

## Classes

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

## Public Types

using | ValueType = typename ChildT::ValueType
using | BuildType = typename ChildT::BuildType
using | ChildNodeType = ChildT
using | LeafNodeType = typename ChildT::LeafNodeType
using | MaskT = Mask<LOG2DIM>
template<bool On>
using | MaskIterT = typename MaskT::template Iterator<On>
using | NanoNodeT = typename NanoNode<BuildType, LEVEL>::Type

## Public Member Functions

ChildIterator | beginChild ()
ChildIterator | cbeginChildOn () const
ValueIterator | beginValue ()
ValueIterator | cbeginValueAll () const
ValueOnIterator | beginValueOn ()
ValueOnIterator | cbeginValueOn () const
DenseIterator | beginDense ()
DenseIterator | cbeginChildAll () const
| InternalNode (const Coord &origin, const ValueType &value, bool state)
| InternalNode (const InternalNode &)=delete
| InternalNode (InternalNode &&)=delete
InternalNode & | operator= (const InternalNode &)=delete
InternalNode & | operator= (InternalNode &&)=delete
| ~InternalNode ()
const MaskT & | getValueMask () const
const MaskT & | valueMask () const
const MaskT & | getChildMask () const
const MaskT & | childMask () const
const Coord & | origin () const
void | nodeCount (std::array< size_t, 3 > &count) const
void | localToGlobalCoord (Coord &ijk) const
Coord | offsetToGlobalCoord (uint32_t n) const
ValueType | getFirstValue () const
ValueType | getLastValue () const
template<typename OpT, typename... ArgsT>
auto | get (const Coord &ijk, ArgsT &&... args) const
template<typename OpT, typename... ArgsT>
auto | set (const Coord &ijk, ArgsT &&... args)
template<typename OpT, typename AccT, typename... ArgsT>
auto | getAndCache (const Coord &ijk, const AccT &acc, ArgsT &&... args) const
template<typename OpT, typename AccT, typename... ArgsT>
auto | setAndCache (const Coord &ijk, const AccT &acc, ArgsT &&... args)
ValueType | getValue (const Coord &ijk) const
void | setValue (const Coord &ijk, const ValueType &value)
template<typename AccT>
ValueType | getValueAndCache (const Coord &ijk, AccT &acc) const
template<typename AccT>
void | setValueAndCache (const Coord &ijk, const ValueType &value, AccT &acc)
template<typename AccT>
void | setValueOnAndCache (const Coord &ijk, AccT &acc)
template<typename AccT>
void | touchLeafAndCache (const Coord &ijk, AccT &acc)
template<typename AccT>
bool | isActiveAndCache (const Coord &ijk, AccT &acc) const
template<typename NodeT>
uint32_t | nodeCount () const
template<typename NodeT>
void | getNodes (std::vector< NodeT * > &array)
void | addChild (ChildT *&child)
template<uint32_t level>
void | addTile (const Coord &ijk, const ValueType &value, bool state)
| Add a tile containing voxel (i, j, k) at the specified tree level, creating a new branch if necessary. Delete any existing lower-level nodes that contain (x, y, z).
template<typename NodeT>
void | addNode (NodeT *&node)
void | merge (InternalNode &other)
template<typename T>
std::enable_if< std::is_floating_point< T >::value >::type | signedFloodFill (T outside)

## Static Public Member Functions

static uint32_t | CoordToOffset (const Coord &ijk)
static Coord | OffsetToLocalCoord (uint32_t n)

## Public Attributes

Coord | mOrigin
MaskT | mValueMask
MaskT | mChildMask
Tile | mTable [SIZE]
union { |
NanoNodeT * mDstNode |
uint64_t mDstOffset |
}; |

## Static Public Attributes

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

## Member Typedef Documentation

## BuildType

template<typename ChildT>

using BuildType = typename ChildT::BuildType

## ChildNodeType

template<typename ChildT>

using ChildNodeType = ChildT

## LeafNodeType

template<typename ChildT>

using LeafNodeType = typename ChildT::LeafNodeType

## MaskIterT

template<typename ChildT>
template<bool On>

using MaskIterT = typename MaskT::template Iterator<On>

## MaskT

template<typename ChildT>

using MaskT = Mask<LOG2DIM>

## NanoNodeT

template<typename ChildT>

using NanoNodeT = typename NanoNode<BuildType, LEVEL>::Type

## ValueType

template<typename ChildT>

using ValueType = typename ChildT::ValueType

## Constructor & Destructor Documentation

## InternalNode() [1/3]

template<typename ChildT>

InternalNode | ( | const Coord & | origin,
|  | const ValueType & | value,
|  | bool | state )

inline

## InternalNode() [2/3]

template<typename ChildT>

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

delete

## InternalNode() [3/3]

template<typename ChildT>

InternalNode | ( | InternalNode< ChildT > && |  | ) |

delete

## ~InternalNode()

template<typename ChildT>

~InternalNode | ( |  | ) |

inline

## Member Function Documentation

## addChild()

template<typename ChildT>

void addChild | ( | ChildT *& | child | ) |

inline

## addNode()

template<typename ChildT>
template<typename NodeT>

void addNode | ( | NodeT *& | node | ) |

inline

## addTile()

template<typename ChildT>
template<uint32_t level>

void addTile | ( | const Coord & | ijk,
|  | const ValueType & | value,
|  | bool | state )

inline

Add a tile containing voxel (i, j, k) at the specified tree level, creating a new branch if necessary. Delete any existing lower-level nodes that contain (x, y, z).

Template Parameters

  level | tree level at which the tile is inserted. Must be 1 or 2.

Parameters

  ijk | Index coordinate that map to the tile being inserted
  value | Value of the tile
  state | Binary state of the tile

## beginChild()

template<typename ChildT>

ChildIterator beginChild | ( |  | ) |

inline

## beginDense()

template<typename ChildT>

DenseIterator beginDense | ( |  | ) |

inline

## beginValue()

template<typename ChildT>

ValueIterator beginValue | ( |  | ) |

inline

## beginValueOn()

template<typename ChildT>

ValueOnIterator beginValueOn | ( |  | ) |

inline

## cbeginChildAll()

template<typename ChildT>

DenseIterator cbeginChildAll | ( |  | ) | const

inline

## cbeginChildOn()

template<typename ChildT>

ChildIterator cbeginChildOn | ( |  | ) | const

inline

## cbeginValueAll()

template<typename ChildT>

ValueIterator cbeginValueAll | ( |  | ) | const

inline

## cbeginValueOn()

template<typename ChildT>

ValueOnIterator cbeginValueOn | ( |  | ) | const

inline

## childMask()

template<typename ChildT>

const MaskT & childMask | ( |  | ) | const

inline

## CoordToOffset()

template<typename ChildT>

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

inline static

## get()

template<typename ChildT>
template<typename OpT, typename... ArgsT>

auto get | ( | const Coord & | ijk,
|  | ArgsT &&... | args ) const

inline

## getAndCache()

template<typename ChildT>
template<typename OpT, typename AccT, typename... ArgsT>

auto getAndCache | ( | const Coord & | ijk,
|  | const AccT & | acc,
|  | ArgsT &&... | args ) const

inline

## getChildMask()

template<typename ChildT>

const MaskT & getChildMask | ( |  | ) | const

inline

## getFirstValue()

template<typename ChildT>

ValueType getFirstValue | ( |  | ) | const

inline

## getLastValue()

template<typename ChildT>

ValueType getLastValue | ( |  | ) | const

inline

## getNodes()

template<typename ChildT>
template<typename NodeT>

void getNodes | ( | std::vector< NodeT * > & | array | ) |

inline

## getValue()

template<typename ChildT>

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

inline

## getValueAndCache()

template<typename ChildT>
template<typename AccT>

ValueType getValueAndCache | ( | const Coord & | ijk,
|  | AccT & | acc ) const

inline

## getValueMask()

template<typename ChildT>

const MaskT & getValueMask | ( |  | ) | const

inline

## isActiveAndCache()

template<typename ChildT>
template<typename AccT>

bool isActiveAndCache | ( | const Coord & | ijk,
|  | AccT & | acc ) const

inline

## localToGlobalCoord()

template<typename ChildT>

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

inline

## merge()

template<typename ChildT>

void merge | ( | InternalNode< ChildT > & | other | ) |

inline

## nodeCount() [1/2]

template<typename ChildT>
template<typename NodeT>

uint32_t nodeCount | ( |  | ) | const

inline

## nodeCount() [2/2]

template<typename ChildT>

void nodeCount | ( | std::array< size_t, 3 > & | count | ) | const

inline

## offsetToGlobalCoord()

template<typename ChildT>

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

inline

## OffsetToLocalCoord()

template<typename ChildT>

Coord OffsetToLocalCoord | ( | uint32_t | n | ) |

inline static

## operator=() [1/2]

template<typename ChildT>

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

delete

## operator=() [2/2]

template<typename ChildT>

InternalNode & operator= | ( | InternalNode< ChildT > && |  | ) |

delete

## origin()

template<typename ChildT>

const Coord & origin | ( |  | ) | const

inline

## set()

template<typename ChildT>
template<typename OpT, typename... ArgsT>

auto set | ( | const Coord & | ijk,
|  | ArgsT &&... | args )

inline

## setAndCache()

template<typename ChildT>
template<typename OpT, typename AccT, typename... ArgsT>

auto setAndCache | ( | const Coord & | ijk,
|  | const AccT & | acc,
|  | ArgsT &&... | args )

inline

## setValue()

template<typename ChildT>

void setValue | ( | const Coord & | ijk,
|  | const ValueType & | value )

inline

## setValueAndCache()

template<typename ChildT>
template<typename AccT>

void setValueAndCache | ( | const Coord & | ijk,
|  | const ValueType & | value,
|  | AccT & | acc )

inline

## setValueOnAndCache()

template<typename ChildT>
template<typename AccT>

void setValueOnAndCache | ( | const Coord & | ijk,
|  | AccT & | acc )

inline

## signedFloodFill()

template<typename ChildT>
template<typename T>

std::enable_if< std::is_floating_point< T >::value >::type signedFloodFill | ( | T | outside | ) |

inline

## touchLeafAndCache()

template<typename ChildT>
template<typename AccT>

void touchLeafAndCache | ( | const Coord & | ijk,
|  | AccT & | acc )

inline

## valueMask()

template<typename ChildT>

const MaskT & valueMask | ( |  | ) | const

inline

## Member Data Documentation

## [union]

union { ... }

## DIM

template<typename ChildT>

uint32_t DIM = 1u << TOTAL

static constexpr

## LEVEL

template<typename ChildT>

uint32_t LEVEL = 1 + ChildT::LEVEL

static constexpr

## LOG2DIM

template<typename ChildT>

uint32_t LOG2DIM = ChildT::LOG2DIM + 1

static constexpr

## MASK

template<typename ChildT>

uint32_t MASK = DIM - 1

static constexpr

## mChildMask

template<typename ChildT>

MaskT mChildMask

## mDstNode

template<typename ChildT>

NanoNodeT* mDstNode

## mDstOffset

template<typename ChildT>

uint64_t mDstOffset

## mOrigin

template<typename ChildT>

Coord mOrigin

## mTable

template<typename ChildT>

Tile mTable[SIZE]

## mValueMask

template<typename ChildT>

MaskT mValueMask

## NUM_VALUES

template<typename ChildT>

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

static constexpr

## SIZE

template<typename ChildT>

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

static constexpr

## TOTAL

template<typename ChildT>

uint32_t TOTAL = LOG2DIM + ChildT::TOTAL

static constexpr