OpenVDB  9.0.1
Classes | Namespaces
LeafManager.h File Reference

A LeafManager manages a linear array of pointers to a given tree's leaf nodes, as well as optional auxiliary buffers (one or more per leaf) that can be swapped with the leaf nodes' voxel data buffers. More...

#include <openvdb/Types.h>
#include <openvdb/tree/RootNode.h>
#include <tbb/blocked_range.h>
#include <tbb/parallel_for.h>
#include <tbb/parallel_reduce.h>
#include <deque>
#include <functional>
#include <type_traits>

Go to the source code of this file.

Classes

struct  TreeTraits< TreeT >
 Useful traits for Tree types. More...
 
struct  TreeTraits< const TreeT >
 
struct  LeafManagerImpl< ManagerT >
 
class  LeafManager< TreeT >
 This class manages a linear array of pointers to a given tree's leaf nodes, as well as optional auxiliary buffers (one or more per leaf) that can be swapped with the leaf nodes' voxel data buffers. More...
 
class  LeafManager< TreeT >::LeafRange
 
class  LeafManager< TreeT >::LeafRange::Iterator
 
struct  LeafManagerImpl< LeafManager< const TreeT > >
 

Namespaces

 openvdb
 
 openvdb::v9_0
 
 openvdb::v9_0::tree
 
 openvdb::v9_0::tree::leafmgr
 

Detailed Description

A LeafManager manages a linear array of pointers to a given tree's leaf nodes, as well as optional auxiliary buffers (one or more per leaf) that can be swapped with the leaf nodes' voxel data buffers.

The leaf array is useful for multithreaded computations over leaf voxels in a tree with static topology but varying voxel values. The auxiliary buffers are convenient for temporal integration. Efficient methods are provided for multithreaded swapping and synching (i.e., copying the contents) of these buffers.