OpenVDB  12.0.0
Classes | Namespaces | Functions
PointTransfer.h File Reference

Framework methods for rasterizing PointDataGrid data to Trees. More...

#include <openvdb/openvdb.h>
#include <openvdb/Types.h>
#include <openvdb/Grid.h>
#include <openvdb/math/Transform.h>
#include <openvdb/util/NullInterrupter.h>
#include <openvdb/util/Assert.h>
#include <openvdb/thread/Threading.h>
#include <type_traits>
#include <tuple>

Go to the source code of this file.

Classes

struct  TransformTransfer
 The TransformTransfer module should be used if the source transform of the input points and the target transforms of the destination volumes differ. The default rasterizer will skip index to world (and vice versa) transformations unless a transfer scheme derives from a TransformTransfer. More...
 
struct  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. More...
 
struct  VolumeTransfer< TreeTypes >::TypeResolver< T >
 
struct  VolumeTransfer< TreeT >
 VolumeTransfer specialization for a single target volume. More...
 
struct  RasterizePoints< TransferT, TopologyT, PointFilterT, InterrupterT >
 

Namespaces

 openvdb
 
 openvdb::v12_0
 
 openvdb::v12_0::points
 
 openvdb::v12_0::points::transfer_internal
 

Functions

template<typename PointDataTreeOrGridT , typename TransferT , typename FilterT = NullFilter, typename InterrupterT = util::NullInterrupter>
void rasterize (const PointDataTreeOrGridT &points, TransferT &transfer, const FilterT &filter=NullFilter(), InterrupterT *interrupter=nullptr)
 Perform potentially complex rasterization from a user defined transfer scheme. More...
 
template<typename T , typename F , size_t... Is>
void foreach (T &&t, const F &func, std::integer_sequence< size_t, Is... >)
 
template<typename T , typename F , size_t... Is>
void foreach (void **buffers, const F &func, std::integer_sequence< size_t, Is... >)
 
template<typename T , template< typename > class R, typename F , size_t... Is>
void foreach (void **buffers, const F &func, std::integer_sequence< size_t, Is... >)
 

Detailed Description

Framework methods for rasterizing PointDataGrid data to Trees.

Author
Nick Avramoussis

Provides a generic inherited interface for deriving transfer schemes that represent how point data should be rasterized. The provided components together support the transfer of multiple attributes to arbitrary and multiple grid types. Target grids must have the same transform, but this transform can differ from the source PointDataGrid (multiple instantiations of rasterize() should instead be invoked to transfer to grids of different transforms). Arbitrary attributes can be accessed and transfered to arbitrary trees.