HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
nanovdb::build::RootNode< ChildT > Struct Template Reference

#include <GridBuilder.h>

Classes

class  ChildIterator
 
struct  Tile
 
class  TileIterator
 
class  ValueIterator
 
class  ValueOnIterator
 

Public Types

using ValueType = typename ChildT::ValueType
 
using BuildType = typename ChildT::BuildType
 
using ChildNodeType = ChildT
 
using LeafNodeType = typename ChildT::LeafNodeType
 
using MapT = std::map< Coord, Tile >
 

Public Member Functions

TileprobeTile (const Coord &ijk)
 
const TileprobeTile (const Coord &ijk) const
 
ChildIterator cbeginChild () const
 
ChildIterator cbeginChildOn () const
 
ValueIterator beginValue ()
 
ValueIterator cbeginValueAll () const
 
ValueOnIterator beginValueOn ()
 
ValueOnIterator cbeginValueOn () const
 
TileIterator beginTile ()
 
TileIterator cbeginChildAll () const
 
 RootNode (const ValueType &background)
 
 RootNode (const RootNode &)=delete
 
 RootNode (RootNode &&)=default
 
RootNodeoperator= (const RootNode &)=delete
 
RootNodeoperator= (RootNode &&)=default
 
 ~RootNode ()
 
uint32_t tileCount () const
 
uint32_t getTableSize () const
 
const ValueTypebackground () const
 
void nodeCount (std::array< size_t, 3 > &count) const
 
bool empty () const
 
void clear ()
 
ValueType getValue (const Coord &ijk) const
 
ValueType getValue (int i, int j, int k) const
 
void setValue (const Coord &ijk, const ValueType &value)
 
template<typename AccT >
bool isActiveAndCache (const Coord &ijk, AccT &acc) const
 
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 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). More...
 
template<typename NodeT >
void addNode (NodeT *&node)
 
void merge (RootNode &other)
 
template<typename T >
std::enable_if
< std::is_floating_point< T >
::value >::type 
signedFloodFill (T outside)
 
template<typename AccessorT >
const ChildT::ValueType & getValueAndCache (const Coord &xyz, AccessorT &acc) const
 
template<typename AccessorT >
ChildT::LeafNodeType * touchLeafAndCache (const Coord &xyz, AccessorT &acc)
 

Static Public Member Functions

static Coord CoordToKey (const Coord &ijk)
 

Public Attributes

MapT mTable
 
ValueType mBackground
 

Static Public Attributes

static constexpr uint32_t LEVEL = 1 + ChildT::LEVEL
 

Detailed Description

template<typename ChildT>
struct nanovdb::build::RootNode< ChildT >

Definition at line 48 of file GridBuilder.h.

Member Typedef Documentation

template<typename ChildT>
using nanovdb::build::RootNode< ChildT >::BuildType = typename ChildT::BuildType

Definition at line 51 of file GridBuilder.h.

template<typename ChildT>
using nanovdb::build::RootNode< ChildT >::ChildNodeType = ChildT

Definition at line 52 of file GridBuilder.h.

template<typename ChildT>
using nanovdb::build::RootNode< ChildT >::LeafNodeType = typename ChildT::LeafNodeType

Definition at line 53 of file GridBuilder.h.

template<typename ChildT>
using nanovdb::build::RootNode< ChildT >::MapT = std::map<Coord, Tile>

Definition at line 65 of file GridBuilder.h.

template<typename ChildT>
using nanovdb::build::RootNode< ChildT >::ValueType = typename ChildT::ValueType

Definition at line 50 of file GridBuilder.h.

Constructor & Destructor Documentation

template<typename ChildT>
nanovdb::build::RootNode< ChildT >::RootNode ( const ValueType background)
inline

Definition at line 226 of file GridBuilder.h.

template<typename ChildT>
nanovdb::build::RootNode< ChildT >::RootNode ( const RootNode< ChildT > &  )
delete
template<typename ChildT>
nanovdb::build::RootNode< ChildT >::RootNode ( RootNode< ChildT > &&  )
default
template<typename ChildT>
nanovdb::build::RootNode< ChildT >::~RootNode ( )
inline

Definition at line 232 of file GridBuilder.h.

Member Function Documentation

template<typename ChildT>
void nanovdb::build::RootNode< ChildT >::addChild ( ChildT *&  child)
inline

Definition at line 477 of file GridBuilder.h.

template<typename ChildT>
template<typename NodeT >
void nanovdb::build::RootNode< ChildT >::addNode ( NodeT *&  node)
inline

Definition at line 532 of file GridBuilder.h.

template<typename ChildT>
template<uint32_t level>
void nanovdb::build::RootNode< ChildT >::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
leveltree level at which the tile is inserted. Must be 1, 2 or 3.
Parameters
ijkIndex coordinate that map to the tile being inserted
valueValue of the tile
stateBinary state of the tile

Definition at line 499 of file GridBuilder.h.

template<typename ChildT>
const ValueType& nanovdb::build::RootNode< ChildT >::background ( ) const
inline

Definition at line 236 of file GridBuilder.h.

template<typename ChildT>
TileIterator nanovdb::build::RootNode< ChildT >::beginTile ( )
inline

Definition at line 221 of file GridBuilder.h.

template<typename ChildT>
ValueIterator nanovdb::build::RootNode< ChildT >::beginValue ( )
inline

Definition at line 146 of file GridBuilder.h.

template<typename ChildT>
ValueOnIterator nanovdb::build::RootNode< ChildT >::beginValueOn ( )
inline

Definition at line 180 of file GridBuilder.h.

template<typename ChildT>
ChildIterator nanovdb::build::RootNode< ChildT >::cbeginChild ( ) const
inline

Definition at line 111 of file GridBuilder.h.

template<typename ChildT>
TileIterator nanovdb::build::RootNode< ChildT >::cbeginChildAll ( ) const
inline

Definition at line 222 of file GridBuilder.h.

template<typename ChildT>
ChildIterator nanovdb::build::RootNode< ChildT >::cbeginChildOn ( ) const
inline

Definition at line 112 of file GridBuilder.h.

template<typename ChildT>
ValueIterator nanovdb::build::RootNode< ChildT >::cbeginValueAll ( ) const
inline

Definition at line 147 of file GridBuilder.h.

template<typename ChildT>
ValueOnIterator nanovdb::build::RootNode< ChildT >::cbeginValueOn ( ) const
inline

Definition at line 181 of file GridBuilder.h.

template<typename ChildT>
void nanovdb::build::RootNode< ChildT >::clear ( )
inline

Definition at line 248 of file GridBuilder.h.

template<typename ChildT>
static Coord nanovdb::build::RootNode< ChildT >::CoordToKey ( const Coord ijk)
inlinestatic

Definition at line 254 of file GridBuilder.h.

template<typename ChildT>
bool nanovdb::build::RootNode< ChildT >::empty ( void  ) const
inline

Definition at line 246 of file GridBuilder.h.

template<typename ChildT>
template<typename NodeT >
void nanovdb::build::RootNode< ChildT >::getNodes ( std::vector< NodeT * > &  array)
inline

Definition at line 462 of file GridBuilder.h.

template<typename ChildT>
uint32_t nanovdb::build::RootNode< ChildT >::getTableSize ( ) const
inline

Definition at line 235 of file GridBuilder.h.

template<typename ChildT>
ValueType nanovdb::build::RootNode< ChildT >::getValue ( const Coord ijk) const
inline

Definition at line 324 of file GridBuilder.h.

template<typename ChildT>
ValueType nanovdb::build::RootNode< ChildT >::getValue ( int  i,
int  j,
int  k 
) const
inline

Definition at line 340 of file GridBuilder.h.

template<typename ChildT>
template<typename AccT >
ValueType nanovdb::build::RootNode< ChildT >::getValueAndCache ( const Coord ijk,
AccT &  acc 
) const
inline

Definition at line 374 of file GridBuilder.h.

template<typename ChildT>
template<typename AccessorT >
const ChildT::ValueType& nanovdb::build::RootNode< ChildT >::getValueAndCache ( const Coord xyz,
AccessorT &  acc 
) const
inline

Definition at line 1739 of file RootNode.h.

template<typename ChildT>
template<typename AccT >
bool nanovdb::build::RootNode< ChildT >::isActiveAndCache ( const Coord ijk,
AccT &  acc 
) const
inline

Definition at line 361 of file GridBuilder.h.

template<typename ChildT>
void nanovdb::build::RootNode< ChildT >::merge ( RootNode< ChildT > &  other)
inline

Definition at line 553 of file GridBuilder.h.

template<typename ChildT>
void nanovdb::build::RootNode< ChildT >::nodeCount ( std::array< size_t, 3 > &  count) const
inline

Definition at line 238 of file GridBuilder.h.

template<typename ChildT>
template<typename NodeT >
uint32_t nanovdb::build::RootNode< ChildT >::nodeCount ( ) const
inline

Definition at line 445 of file GridBuilder.h.

template<typename ChildT>
RootNode& nanovdb::build::RootNode< ChildT >::operator= ( const RootNode< ChildT > &  )
delete
template<typename ChildT>
RootNode& nanovdb::build::RootNode< ChildT >::operator= ( RootNode< ChildT > &&  )
default
template<typename ChildT>
Tile* nanovdb::build::RootNode< ChildT >::probeTile ( const Coord ijk)
inline

Definition at line 69 of file GridBuilder.h.

template<typename ChildT>
const Tile* nanovdb::build::RootNode< ChildT >::probeTile ( const Coord ijk) const
inline

Definition at line 74 of file GridBuilder.h.

template<typename ChildT>
void nanovdb::build::RootNode< ChildT >::setValue ( const Coord ijk,
const ValueType value 
)
inline

Definition at line 342 of file GridBuilder.h.

template<typename ChildT>
template<typename AccT >
void nanovdb::build::RootNode< ChildT >::setValueAndCache ( const Coord ijk,
const ValueType value,
AccT &  acc 
)
inline

Definition at line 387 of file GridBuilder.h.

template<typename ChildT>
template<typename AccT >
void nanovdb::build::RootNode< ChildT >::setValueOnAndCache ( const Coord ijk,
AccT &  acc 
)
inline

Definition at line 406 of file GridBuilder.h.

template<typename ChildT >
template<typename T >
std::enable_if< std::is_floating_point< T >::value >::type nanovdb::build::RootNode< ChildT >::signedFloodFill ( outside)
inline

Definition at line 579 of file GridBuilder.h.

template<typename ChildT>
uint32_t nanovdb::build::RootNode< ChildT >::tileCount ( ) const
inline

Definition at line 234 of file GridBuilder.h.

template<typename ChildT>
template<typename AccT >
void nanovdb::build::RootNode< ChildT >::touchLeafAndCache ( const Coord ijk,
AccT &  acc 
)
inline

Definition at line 425 of file GridBuilder.h.

template<typename ChildT>
template<typename AccessorT >
ChildT::LeafNodeType* nanovdb::build::RootNode< ChildT >::touchLeafAndCache ( const Coord xyz,
AccessorT &  acc 
)
inline

Definition at line 2776 of file RootNode.h.

Member Data Documentation

template<typename ChildT>
constexpr uint32_t nanovdb::build::RootNode< ChildT >::LEVEL = 1 + ChildT::LEVEL
static

Definition at line 54 of file GridBuilder.h.

template<typename ChildT>
ValueType nanovdb::build::RootNode< ChildT >::mBackground

Definition at line 67 of file GridBuilder.h.

template<typename ChildT>
MapT nanovdb::build::RootNode< ChildT >::mTable

Definition at line 66 of file GridBuilder.h.


The documentation for this struct was generated from the following files: