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. | |
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. | |
Friends | |
class | ::TestPointMove |
A Deformer that caches the resulting positions from evaluating another Deformer.
using LeafIndex = point_move_internal::LeafIndex |
using Vec3T = typename math::Vec3<T> |
|
explicit |
Cache is expected to be persistent for the lifetime of the CachedDeformer.
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
grid | the points to be moved |
deformer | the deformer to apply to the points |
filter | the point filter to use when evaluating the points |
threaded | enable 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
IndexError | if idx is out-of-range of the leafs in the cache |
|
friend |