OpenVDB 10.0.1
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
VolumeTransfer< TreeTypes > Struct Template Reference

The VolumeTransfer module provides methods to automatically setup and access destination buffers for multiple target volumes of arbitrary types. Deriving from a VolumeTransfer ensures that the available buffers correlate to the order of the provided tree arguments. More...

#include <openvdb/points/PointTransfer.h>

Classes

struct  TypeResolver
 

Public Types

using TreeTupleT = std::tuple< TreeTypes *... >
 
template<size_t Idx>
using TreeType = typename std::tuple_element< Idx, std::tuple< TreeTypes... > >::type
 
template<size_t Idx>
using ValueType = typename TreeType< Idx >::ValueType
 
using NodeMaskT = typename TreeType< 0 >::LeafNodeType::NodeMaskType
 

Public Member Functions

 VolumeTransfer (TreeTypes *... trees)
 
 VolumeTransfer (TreeTypes &... trees)
 
 VolumeTransfer (const VolumeTransfer &other)
 
TreeType< 0 > & topology ()
 
void initialize (const Coord &origin, const size_t, const CoordBBox &)
 
template<size_t Idx>
ValueType< Idx > * buffer ()
 
template<size_t Idx>
const ValueType< Idx > * buffer () const
 
template<size_t Idx>
NodeMaskTmask ()
 
NodeMaskTmask (const size_t idx)
 
template<size_t Idx>
const NodeMaskTmask () const
 
const NodeMaskTmask (const size_t idx) const
 
template<typename FunctorT >
void foreach (const FunctorT &functor)
 

Static Public Attributes

static const size_t Size = sizeof...(TreeTypes)
 

Detailed Description

template<typename ... TreeTypes>
struct openvdb::v10_0::points::VolumeTransfer< TreeTypes >

The VolumeTransfer module provides methods to automatically setup and access destination buffers for multiple target volumes of arbitrary types. Deriving from a VolumeTransfer ensures that the available buffers correlate to the order of the provided tree arguments.

Member Typedef Documentation

◆ NodeMaskT

template<typename ... TreeTypes>
using NodeMaskT = typename TreeType<0>::LeafNodeType::NodeMaskType

◆ TreeTupleT

template<typename ... TreeTypes>
using TreeTupleT = std::tuple<TreeTypes*...>

◆ TreeType

template<typename ... TreeTypes>
template<size_t Idx>
using TreeType = typename std::tuple_element<Idx, std::tuple<TreeTypes...> >::type

◆ ValueType

template<typename ... TreeTypes>
template<size_t Idx>
using ValueType = typename TreeType<Idx>::ValueType

Constructor & Destructor Documentation

◆ VolumeTransfer() [1/3]

template<typename ... TreeTypes>
VolumeTransfer ( TreeTypes *...  trees)

◆ VolumeTransfer() [2/3]

template<typename ... TreeTypes>
VolumeTransfer ( TreeTypes &...  trees)
inline

◆ VolumeTransfer() [3/3]

template<typename ... TreeTypes>
VolumeTransfer ( const VolumeTransfer< TreeTypes > &  other)
inline

Member Function Documentation

◆ buffer() [1/2]

template<typename ... TreeTypes>
template<size_t Idx>
ValueType< Idx > * buffer ( )
inline

◆ buffer() [2/2]

template<typename ... TreeTypes>
template<size_t Idx>
const ValueType< Idx > * buffer ( ) const
inline

◆ foreach()

template<typename ... TreeTypes>
template<typename FunctorT >
void foreach ( const FunctorT &  functor)
inline

◆ initialize()

template<typename ... TreeTypes>
void initialize ( const Coord origin,
const size_t  ,
const CoordBBox  
)
inline

◆ mask() [1/4]

template<typename ... TreeTypes>
template<size_t Idx>
NodeMaskT * mask ( )
inline

◆ mask() [2/4]

template<typename ... TreeTypes>
template<size_t Idx>
const NodeMaskT * mask ( ) const
inline

◆ mask() [3/4]

template<typename ... TreeTypes>
NodeMaskT * mask ( const size_t  idx)
inline

◆ mask() [4/4]

template<typename ... TreeTypes>
const NodeMaskT * mask ( const size_t  idx) const
inline

◆ topology()

template<typename ... TreeTypes>
TreeType< 0 > & topology ( )
inline

Member Data Documentation

◆ Size

template<typename ... TreeTypes>
const size_t Size = sizeof...(TreeTypes)
static