OpenVDB  12.0.0
Classes | Public Types | Public Member Functions | Friends | List of all members
CachedDeformer< T > Class Template Reference

A Deformer that caches the resulting positions from evaluating another Deformer. More...

#include <openvdb/points/impl/PointMoveImpl.h>

Classes

struct  Cache
 

Public Types

using LeafIndex = point_move_internal::LeafIndex
 
using Vec3T = typename math::Vec3< T >
 
using LeafVecT = std::vector< Vec3T >
 
using LeafMapT = std::unordered_map< LeafIndex, Vec3T >
 

Public Member Functions

 CachedDeformer (Cache &cache)
 Cache is expected to be persistent for the lifetime of the CachedDeformer. More...
 
template<typename PointDataGridT , typename DeformerT , typename FilterT >
void evaluate (PointDataGridT &grid, DeformerT &deformer, const FilterT &filter, bool threaded=true)
 
template<typename LeafT >
void reset (const LeafT &leaf, size_t idx)
 
template<typename IndexIterT >
void apply (Vec3d &position, const IndexIterT &iter) const
 Retrieve the new position from the cache. More...
 

Friends

class ::TestPointMove
 

Detailed Description

template<typename T>
class openvdb::v12_0::points::CachedDeformer< T >

A Deformer that caches the resulting positions from evaluating another Deformer.

Member Typedef Documentation

using LeafMapT = std::unordered_map<LeafIndex, Vec3T>
using LeafVecT = std::vector<Vec3T>
using Vec3T = typename math::Vec3<T>

Constructor & Destructor Documentation

CachedDeformer ( Cache cache)
explicit

Cache is expected to be persistent for the lifetime of the CachedDeformer.

Member Function Documentation

void apply ( Vec3d &  position,
const IndexIterT &  iter 
) const

Retrieve the new position from the cache.

void evaluate ( PointDataGridT &  grid,
DeformerT &  deformer,
const FilterT &  filter,
bool  threaded = true 
)

Caches the result of evaluating the supplied point grid using the deformer and filter

Parameters
gridthe points to be moved
deformerthe deformer to apply to the points
filterthe point filter to use when evaluating the points
threadedenable or disable threading (threading is enabled by default)
void reset ( const LeafT &  leaf,
size_t  idx 
)

Stores pointers to the vector or map and optionally expands the map into a vector

Exceptions
IndexErrorif idx is out-of-range of the leafs in the cache

Friends And Related Function Documentation

friend class ::TestPointMove
friend