HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GridBuilder.h File Reference

This file defines a minimum set of tree nodes and tools that can be used (instead of OpenVDB) to build nanovdb grids on the CPU. More...

#include <iostream>
#include <map>
#include <limits>
#include <sstream>
#include <vector>
#include <cstring>
#include <mutex>
#include <array>
#include <atomic>
#include <nanovdb/NanoVDB.h>
#include "Range.h"
#include "ForEach.h"
+ Include dependency graph for GridBuilder.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  nanovdb::build::GetValue< T >
 Implements Tree::getValue(Coord), i.e. return the value associated with a specific coordinate ijk. More...
 
struct  nanovdb::build::SetValue< T >
 Set the value and its state at the leaf level mapped to by ijk, and create the leaf node and branch if needed. More...
 
struct  nanovdb::build::TouchLeaf< T >
 
struct  nanovdb::build::GetState< T >
 Implements Tree::isActive(Coord) More...
 
struct  nanovdb::build::ProbeValue< T >
 Implements Tree::probeLeaf(Coord) More...
 
struct  nanovdb::build::RootNode< ChildT >
 
struct  nanovdb::build::RootNode< ChildT >::Tile
 
class  nanovdb::build::RootNode< ChildT >::ChildIterator
 
class  nanovdb::build::RootNode< ChildT >::ValueIterator
 
class  nanovdb::build::RootNode< ChildT >::ValueOnIterator
 
class  nanovdb::build::RootNode< ChildT >::TileIterator
 
struct  nanovdb::build::InternalNode< ChildT >
 
struct  nanovdb::build::InternalNode< ChildT >::Tile
 
class  nanovdb::build::InternalNode< ChildT >::ChildIterator
 Visits child nodes of this node only. More...
 
class  nanovdb::build::InternalNode< ChildT >::ValueIterator
 Visits all tile values in this node, i.e. both inactive and active tiles. More...
 
class  nanovdb::build::InternalNode< ChildT >::ValueOnIterator
 Visits active tile values of this node only. More...
 
class  nanovdb::build::InternalNode< ChildT >::DenseIterator
 Visits all tile values and child nodes of this node. More...
 
struct  nanovdb::build::LeafNode< BuildT >
 
class  nanovdb::build::LeafNode< BuildT >::ValueOnIterator
 Visits all active values in a leaf node. More...
 
class  nanovdb::build::LeafNode< BuildT >::ValueOffIterator
 Visits all inactive values in a leaf node. More...
 
class  nanovdb::build::LeafNode< BuildT >::ValueIterator
 Visits all values in a leaf node, i.e. both active and inactive values. More...
 
struct  nanovdb::build::LeafNode< ValueMask >
 
class  nanovdb::build::LeafNode< ValueMask >::ValueOnIterator
 Visits all active values in a leaf node. More...
 
class  nanovdb::build::LeafNode< ValueMask >::ValueOffIterator
 Visits all inactive values in a leaf node. More...
 
class  nanovdb::build::LeafNode< ValueMask >::ValueIterator
 Visits all values in a leaf node, i.e. both active and inactive values. More...
 
struct  nanovdb::build::LeafNode< bool >
 
class  nanovdb::build::LeafNode< bool >::ValueOnIterator
 Visits all active values in a leaf node. More...
 
class  nanovdb::build::LeafNode< bool >::ValueOffIterator
 Visits all inactive values in a leaf node. More...
 
class  nanovdb::build::LeafNode< bool >::ValueIterator
 Visits all values in a leaf node, i.e. both active and inactive values. More...
 
struct  nanovdb::build::ValueAccessor< BuildT >
 
struct  nanovdb::build::Tree< BuildT >
 
struct  nanovdb::build::Tree< BuildT >::WriteAccessor
 
struct  nanovdb::build::Grid< BuildT >
 
class  nanovdb::build::NodeManager< GridT >
 
struct  nanovdb::build::TouchLeaf< T >
 
struct  nanovdb::build::GetValue< T >
 Implements Tree::getValue(Coord), i.e. return the value associated with a specific coordinate ijk. More...
 
struct  nanovdb::build::GetState< T >
 Implements Tree::isActive(Coord) More...
 
struct  nanovdb::build::SetValue< T >
 Set the value and its state at the leaf level mapped to by ijk, and create the leaf node and branch if needed. More...
 
struct  nanovdb::build::ProbeValue< T >
 Implements Tree::probeLeaf(Coord) More...
 

Namespaces

 nanovdb
 
 nanovdb::build
 

Typedefs

template<typename T >
using nanovdb::build::BuildLeaf = LeafNode< T >
 
template<typename T >
using nanovdb::build::BuildLower = InternalNode< BuildLeaf< T >>
 
template<typename T >
using nanovdb::build::BuildUpper = InternalNode< BuildLower< T >>
 
template<typename T >
using nanovdb::build::BuildRoot = RootNode< BuildUpper< T >>
 
template<typename T >
using nanovdb::build::BuildTile = typename BuildRoot< T >::Tile
 
using nanovdb::build::FloatGrid = Grid< float >
 
using nanovdb::build::Fp4Grid = Grid< Fp4 >
 
using nanovdb::build::Fp8Grid = Grid< Fp8 >
 
using nanovdb::build::Fp16Grid = Grid< Fp16 >
 
using nanovdb::build::FpNGrid = Grid< FpN >
 
using nanovdb::build::DoubleGrid = Grid< double >
 
using nanovdb::build::Int32Grid = Grid< int32_t >
 
using nanovdb::build::UInt32Grid = Grid< uint32_t >
 
using nanovdb::build::Int64Grid = Grid< int64_t >
 
using nanovdb::build::Vec3fGrid = Grid< Vec3f >
 
using nanovdb::build::Vec3dGrid = Grid< Vec3d >
 
using nanovdb::build::Vec4fGrid = Grid< Vec4f >
 
using nanovdb::build::Vec4dGrid = Grid< Vec4d >
 
using nanovdb::build::MaskGrid = Grid< ValueMask >
 
using nanovdb::build::IndexGrid = Grid< ValueIndex >
 
using nanovdb::build::OnIndexGrid = Grid< ValueOnIndex >
 
using nanovdb::build::BoolGrid = Grid< bool >
 

Functions

template<typename NodeManagerT >
enable_if< is_floating_point
< typename
NodeManagerT::ValueType >
::value >::type 
nanovdb::build::sdfToLevelSet (NodeManagerT &mgr)
 
template<typename NodeManagerT >
void nanovdb::build::levelSetToFog (NodeManagerT &mgr, bool rebuild=true)
 

Detailed Description

This file defines a minimum set of tree nodes and tools that can be used (instead of OpenVDB) to build nanovdb grids on the CPU.

Author
Ken Museth
Date
June 26, 2020

Definition in file GridBuilder.h.