HDK
|
Namespaces | |
iter | |
leafmgr | |
Classes | |
struct | SameLeafConfig |
struct | SameLeafConfig< Dim1, points::PointDataLeafNode< T2, Dim1 > > |
struct | SameLeafConfig< Dim1, openvdb::tools::PointIndexLeafNode< T2, Dim1 > > |
struct | SameInternalConfig |
class | InternalNode |
struct | SameInternalConfig< ChildT1, Dim1, InternalNode< ChildT2, Dim1 > > |
class | IteratorBase |
Base class for iterators over internal and leaf nodes. More... | |
struct | SparseIteratorBase |
Base class for sparse iterators over internal and leaf nodes. More... | |
struct | DenseIteratorBase |
Base class for dense iterators over internal and leaf nodes. More... | |
class | LeafBuffer |
Array of fixed size 23Log2Dim that stores the voxel values of a LeafNode. More... | |
class | LeafBuffer< bool, Log2Dim > |
struct | LeafManagerImpl |
class | LeafManager |
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... | |
struct | LeafManagerImpl< LeafManager< const TreeT > > |
class | LeafNode |
Templated block class to hold specific data types and a fixed number of values determined by Log2Dim. The actual coordinate dimension of the block is 2^Log2Dim, i.e. Log2Dim=3 corresponds to a LeafNode that spans a 8^3 block. More... | |
struct | SameLeafConfig< Dim1, LeafNode< T2, Dim1 > > |
class | LeafNode< bool, Log2Dim > |
LeafNode specialization for values of type bool that stores both the active states and the values of (2^Log2Dim)^3 voxels as bit masks. More... | |
class | LeafNode< ValueMask, Log2Dim > |
LeafNode specialization for values of type ValueMask that encodes both the active states and the boolean values of (2^Log2Dim)^3 voxels in a single bit mask, i.e. voxel values and states are indistinguishable! More... | |
class | NodeManager |
To facilitate threading over the nodes of a tree, cache node pointers in linear arrays, one for each level of the tree. More... | |
class | DynamicNodeManager |
struct | NodeFilter |
class | NodeList |
This class caches tree nodes of a specific type in a linear array. More... | |
class | NodeManagerLink |
This class is a link in a chain that each caches tree nodes of a specific type in a linear array. More... | |
struct | ForeachFilterOp |
struct | ReduceFilterOp |
class | DynamicNodeManagerLink |
This class is a link in a chain that each caches tree nodes of a specific type in a linear array. More... | |
class | NodeUnion |
Default implementation of a NodeUnion that stores the child pointer and the value separately (i.e., not in a union). Types which select this specialization usually do not conform to the requirements of a union member, that is that the type ValueT is not trivially copyable. This implementation is thus NOT used for POD, math::Vec, math::Mat, math::Quat or math::Coord types, but is used (for example) with std::string. More... | |
class | NodeUnion< ValueT, ChildT, typename std::enable_if< std::is_trivially_copyable< ValueT >::value >::type > |
Template specialization of a NodeUnion that stores the child pointer and the value together (int, float, pointer, etc.) More... | |
struct | NodeChain |
NodeChain<RootNodeType, RootNodeType::LEVEL>::Type is a openvdb::TypeList that lists the types of the nodes of the tree rooted at RootNodeType in reverse order, from LeafNode to RootNode. More... | |
struct | SameRootConfig |
struct | RootNodeCopyHelper |
struct | RootNodeCombineHelper |
class | RootNode |
struct | NodeChain< HeadT, 1 > |
Specialization to terminate NodeChain. More... | |
struct | SameRootConfig< ChildT1, RootNode< ChildT2 > > |
struct | RootNodeCopyHelper< RootT, OtherRootT, true > |
struct | RootNodeCombineHelper< CombineOp, RootT, OtherRootT, true > |
class | TreeBase |
Base class for typed trees. More... | |
class | Tree |
struct | Tree3 |
Tree3<T, N1, N2>::Type is the type of a three-level tree (Root, Internal, Leaf) with value type T and internal and leaf node log dimensions N1 and N2, respectively. More... | |
struct | Tree4 |
Tree4<T, N1, N2, N3>::Type is the type of a four-level tree (Root, Internal, Internal, Leaf) with value type T and internal and leaf node log dimensions N1, N2 and N3, respectively. More... | |
struct | Tree5 |
Tree5<T, N1, N2, N3, N4>::Type is the type of a five-level tree (Root, Internal, Internal, Internal, Leaf) with value type T and internal and leaf node log dimensions N1, N2, N3 and N4, respectively. More... | |
struct | TreeIterTraits |
TreeIterTraits provides, for all tree iterators, a begin(tree) function that returns an iterator over a tree of arbitrary type. More... | |
struct | TreeIterTraits< TreeT, typename TreeT::RootNodeType::ChildOnIter > |
struct | TreeIterTraits< TreeT, typename TreeT::RootNodeType::ChildOnCIter > |
struct | TreeIterTraits< TreeT, typename TreeT::RootNodeType::ChildOffIter > |
struct | TreeIterTraits< TreeT, typename TreeT::RootNodeType::ChildOffCIter > |
struct | TreeIterTraits< TreeT, typename TreeT::RootNodeType::ChildAllIter > |
struct | TreeIterTraits< TreeT, typename TreeT::RootNodeType::ChildAllCIter > |
struct | TreeIterTraits< TreeT, typename TreeT::NodeIter > |
struct | TreeIterTraits< TreeT, typename TreeT::NodeCIter > |
struct | TreeIterTraits< TreeT, typename TreeT::LeafIter > |
struct | TreeIterTraits< TreeT, typename TreeT::LeafCIter > |
struct | TreeIterTraits< TreeT, typename TreeT::ValueOnIter > |
struct | TreeIterTraits< TreeT, typename TreeT::ValueOnCIter > |
struct | TreeIterTraits< TreeT, typename TreeT::ValueOffIter > |
struct | TreeIterTraits< TreeT, typename TreeT::ValueOffCIter > |
struct | TreeIterTraits< TreeT, typename TreeT::ValueAllIter > |
struct | TreeIterTraits< TreeT, typename TreeT::ValueAllCIter > |
struct | CombineOpAdapter |
Helper class to adapt a three-argument (a, b, result) CombineOp functor into a single-argument functor that accepts a CombineArgs struct. More... | |
struct | IterTraits |
struct | IterTraits< NodeT, typename NodeT::ChildOnIter > |
struct | IterTraits< NodeT, typename NodeT::ChildOnCIter > |
struct | IterTraits< NodeT, typename NodeT::ChildOffIter > |
struct | IterTraits< NodeT, typename NodeT::ChildOffCIter > |
struct | IterTraits< NodeT, typename NodeT::ChildAllIter > |
struct | IterTraits< NodeT, typename NodeT::ChildAllCIter > |
struct | IterTraits< NodeT, typename NodeT::ValueOnIter > |
struct | IterTraits< NodeT, typename NodeT::ValueOnCIter > |
struct | IterTraits< NodeT, typename NodeT::ValueOffIter > |
struct | IterTraits< NodeT, typename NodeT::ValueOffCIter > |
struct | IterTraits< NodeT, typename NodeT::ValueAllIter > |
struct | IterTraits< NodeT, typename NodeT::ValueAllCIter > |
class | IterListItem |
An IterListItem is an element of a compile-time linked list of iterators to nodes of different types. More... | |
class | IterListItem< PrevItemT, NodeVecT, VecSize, 0U > |
The initial element of a compile-time linked list of iterators to nodes of different types. More... | |
class | IterListItem< PrevItemT, NodeVecT, 1, _Level > |
The final element of a compile-time linked list of iterators to nodes of different types. More... | |
class | TreeValueIteratorBase |
Base class for tree-traversal iterators over tile and voxel values. More... | |
class | NodeIteratorBase |
Base class for tree-traversal iterators over all nodes. More... | |
class | LeafIteratorBase |
Base class for tree-traversal iterators over all leaf nodes (but not leaf voxels) More... | |
class | IteratorRange |
class | ValueAccessorImpl |
The Value Accessor Implementation and API methods. The majoirty of the API matches the API of a compatible OpenVDB Tree Node. More... | |
class | ValueAccessorBase |
This base class for ValueAccessors manages registration of an accessor with a tree so that the tree can automatically clear the accessor whenever one of its nodes is deleted. More... | |
struct | ValueAccessorLock |
A small class that contains a Mutex which is derived from by the internal Value Accessor Implementation. This allows for the empty base class optimization to be performed in the case where a Mutex/Lock is not in use. From C++20 we can instead switch to [[no_unique_address]]. More... | |
struct | ValueAccessorLock< void > |
Specialization for the case where no Mutex is in use. See above. More... | |
struct | ValueAccessorLeafBuffer |
A small class that contains a cached pointer to a LeafNode data buffer which is derived from by the internal Value Accessor Implementation. This allows for the empty base class optimization to be performed in the case where a LeafNode does not store a contiguous index-able buffer. From C++20 we can instead switch to [[no_unique_address]]. More... | |
struct | ValueAccessorLeafBuffer< TreeTypeT, IntegerSequence, typename std::enable_if< !value_accessor_internal::EnableLeafBuffer< TreeTypeT, IntegerSequence >::value >::type > |
Specialization for the case where a Leaf Buffer cannot be cached. More... | |
Typedefs | |
template<typename TreeType , bool IsSafe = true, size_t CacheLevels = std::max(Index(1),TreeType::DEPTH)-1, typename MutexType = void> | |
using | ValueAccessor = ValueAccessorImpl< TreeType, IsSafe, MutexType, openvdb::make_index_sequence< CacheLevels >> |
Default alias for a ValueAccessor. This is simply a helper alias for the generic definition but takes a single Index specifying the number of nodes to cache. This is expanded into an index sequence (required for backward compatibility). More... | |
template<typename TreeType , bool IsSafe> | |
using | ValueAccessor0 = ValueAccessorImpl< TreeType, IsSafe, void, openvdb::index_sequence<>> |
Helper alias for a ValueAccessor which doesn't cache any Internal or Leaf nodes. More... | |
template<typename TreeType , bool IsSafe, size_t L0 = 0> | |
using | ValueAccessor1 = ValueAccessorImpl< TreeType, IsSafe, void, openvdb::index_sequence< L0 >> |
Helper alias for a ValueAccessor which caches a single node level. By default, the node level is 0, which corresponds to the lowest node level, typically LeafNodes. More... | |
template<typename TreeType , bool IsSafe, size_t L0 = 0, size_t L1 = 1> | |
using | ValueAccessor2 = ValueAccessorImpl< TreeType, IsSafe, void, openvdb::index_sequence< L0, L1 >> |
Helper alias for a ValueAccessor which caches two node levels. By default the two lowest node levels are selected (0, 1) which typically correspond to an InternalNode and its child LeafNodes. This instantiation will only be valid for TreeTypes which have at least two levels of nodes (excluding the Root node). More... | |
template<typename TreeType , bool IsSafe, size_t L0 = 0, size_t L1 = 1, size_t L2 = 2> | |
using | ValueAccessor3 = ValueAccessorImpl< TreeType, IsSafe, void, openvdb::index_sequence< L0, L1, L2 >> |
Helper alias for a ValueAccessor which caches three node levels. By default the three lowest node levels are selected (0, 1, 2) which typically correspond to two InternalNodes followed by the bottom LeafNodes. This instantiation will only be valid for TreeTypes which have at least three levels of nodes (excluding the Root node). More... | |
template<typename TreeType , bool IsSafe = true, size_t CacheLevels = std::max(Index(1),TreeType::DEPTH)-1> | |
using | ValueAccessorRW = ValueAccessorImpl< TreeType, IsSafe, tbb::spin_mutex, openvdb::make_index_sequence< CacheLevels >> |
Helper alias for a ValueAccesor which spin locks every API call. More... | |
Functions | |
template<typename T , Index Log2Dim> | |
std::ostream & | operator<< (std::ostream &os, const typename LeafNode< T, Log2Dim >::Buffer &buf) |
using openvdb::OPENVDB_VERSION_NAME::tree::ValueAccessor = typedef ValueAccessorImpl<TreeType, IsSafe, MutexType, openvdb::make_index_sequence<CacheLevels>> |
Default alias for a ValueAccessor. This is simply a helper alias for the generic definition but takes a single Index specifying the number of nodes to cache. This is expanded into an index sequence (required for backward compatibility).
TreeType | The tree type |
IsSafe | Whether this accessor registers itself to the tree. See the base class definition for more information on this parameter. |
CacheLevels | The number of node levels to cache excluding the Root node. The Root node is implicitly always included, even if this value is zero. |
MutexType | An optional std compatible mutex to use which ensures every call to the ValueAccessor API is thread safe. If void (the default) no locking takes place. In general it's not advised to mutex lock ValueAccessor methods (instead consider creating a accessor per thread). |
Definition at line 88 of file ValueAccessor.h.
using openvdb::OPENVDB_VERSION_NAME::tree::ValueAccessor0 = typedef ValueAccessorImpl<TreeType, IsSafe, void, openvdb::index_sequence<>> |
Helper alias for a ValueAccessor which doesn't cache any Internal or Leaf nodes.
Definition at line 94 of file ValueAccessor.h.
using openvdb::OPENVDB_VERSION_NAME::tree::ValueAccessor1 = typedef ValueAccessorImpl<TreeType, IsSafe, void, openvdb::index_sequence<L0>> |
Helper alias for a ValueAccessor which caches a single node level. By default, the node level is 0, which corresponds to the lowest node level, typically LeafNodes.
Definition at line 100 of file ValueAccessor.h.
using openvdb::OPENVDB_VERSION_NAME::tree::ValueAccessor2 = typedef ValueAccessorImpl<TreeType, IsSafe, void, openvdb::index_sequence<L0, L1>> |
Helper alias for a ValueAccessor which caches two node levels. By default the two lowest node levels are selected (0, 1) which typically correspond to an InternalNode and its child LeafNodes. This instantiation will only be valid for TreeTypes which have at least two levels of nodes (excluding the Root node).
Definition at line 108 of file ValueAccessor.h.
using openvdb::OPENVDB_VERSION_NAME::tree::ValueAccessor3 = typedef ValueAccessorImpl<TreeType, IsSafe, void, openvdb::index_sequence<L0, L1, L2>> |
Helper alias for a ValueAccessor which caches three node levels. By default the three lowest node levels are selected (0, 1, 2) which typically correspond to two InternalNodes followed by the bottom LeafNodes. This instantiation will only be valid for TreeTypes which have at least three levels of nodes (excluding the Root node).
Definition at line 116 of file ValueAccessor.h.
using openvdb::OPENVDB_VERSION_NAME::tree::ValueAccessorRW = typedef ValueAccessorImpl<TreeType, IsSafe, tbb::spin_mutex, openvdb::make_index_sequence<CacheLevels>> |
Helper alias for a ValueAccesor which spin locks every API call.
Definition at line 123 of file ValueAccessor.h.
|
inline |
Definition at line 1820 of file LeafNode.h.