HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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 "RootNode.h"
#include <tbb/blocked_range.h>
#include <tbb/parallel_for.h>
#include <tbb/parallel_reduce.h>
#include <deque>
#include <functional>
#include <type_traits>
+ Include dependency graph for LeafManager.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openvdb::OPENVDB_VERSION_NAME::tree::leafmgr::TreeTraits< TreeT >
 Useful traits for Tree types. More...
 
struct  openvdb::OPENVDB_VERSION_NAME::tree::leafmgr::TreeTraits< const TreeT >
 
struct  openvdb::OPENVDB_VERSION_NAME::tree::LeafManagerImpl< ManagerT >
 
class  openvdb::OPENVDB_VERSION_NAME::tree::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  openvdb::OPENVDB_VERSION_NAME::tree::LeafManager< TreeT >::LeafRange
 
class  openvdb::OPENVDB_VERSION_NAME::tree::LeafManager< TreeT >::LeafRange::Iterator
 
struct  openvdb::OPENVDB_VERSION_NAME::tree::LeafManagerImpl< LeafManager< const TreeT > >
 

Namespaces

 openvdb
 
 openvdb::OPENVDB_VERSION_NAME
 
 openvdb::OPENVDB_VERSION_NAME::tree
 
 openvdb::OPENVDB_VERSION_NAME::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.

Definition in file LeafManager.h.