OpenVDB 11.0.0
Loading...
Searching...
No Matches
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::v11_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