OpenVDB  2.1.0
Public Types | Public Member Functions | List of all members
PointAdvect< GridT, PointListT, StaggeredVelocity, InterrupterType > Class Template Reference

#include <PointAdvect.h>

Public Types

typedef GridT GridType
 
typedef PointListT PointListType
 
typedef PointListT::value_type LocationType
 
typedef VelocityIntegrator
< GridT, StaggeredVelocity > 
VelocityFieldIntegrator
 

Public Member Functions

 PointAdvect (const GridT &velGrid, InterrupterType *interrupter=NULL)
 
 PointAdvect (const PointAdvect &other)
 
virtual ~PointAdvect ()
 
bool earlyOut () const
 If the order of the integration is set to zero no advection is performed. More...
 
void setThreaded (bool threaded)
 get & set More...
 
bool getThreaded ()
 
void setIntegrationOrder (unsigned int order)
 
void advect (PointListT &points, float dt, unsigned int advIterations=1)
 Constrained advection of a list of points over a time = dt * advIterations. More...
 
void operator() (const tbb::blocked_range< size_t > &range) const
 Never call this method directly - it is use by TBB and has to be public! More...
 

Detailed Description

template<typename GridT = Vec3fGrid, typename PointListT = std::vector<typename GridT::ValueType>, bool StaggeredVelocity = false, typename InterrupterType = util::NullInterrupter>
class openvdb::v2_1_0::tools::PointAdvect< GridT, PointListT, StaggeredVelocity, InterrupterType >

Performs passive or constrained advection of points in a velocity field represented by an OpenVDB grid and an optional closest-point-transform (CPT) represented in another OpenVDB grid. Note the CPT is assumed to be in world coordinates and NOT index coordinates! Supports both collocated velocity grids and staggered velocity grids

The PointListT template argument refers to any class with the following interface (e.g., std::vector<openvdb::Vec3f>):

* class PointList {
* ...
* public:
* typedef internal_vector3_type value_type; // must support [] component access
* openvdb::Index size() const; // number of points in list
* value_type& operator[](int n); // world space position of nth point
* };
*
Note
All methods (except size) are assumed to be thread-safe and the positions are returned as non-const references since the advection method needs to modify them!

Member Typedef Documentation

typedef GridT GridType
typedef PointListT::value_type LocationType
typedef PointListT PointListType
typedef VelocityIntegrator<GridT, StaggeredVelocity> VelocityFieldIntegrator

Constructor & Destructor Documentation

PointAdvect ( const GridT &  velGrid,
InterrupterType *  interrupter = NULL 
)
inline
PointAdvect ( const PointAdvect< GridT, PointListT, StaggeredVelocity, InterrupterType > &  other)
inline
virtual ~PointAdvect ( )
inlinevirtual

Member Function Documentation

void advect ( PointListT &  points,
float  dt,
unsigned int  advIterations = 1 
)
inline

Constrained advection of a list of points over a time = dt * advIterations.

bool earlyOut ( ) const
inline

If the order of the integration is set to zero no advection is performed.

bool getThreaded ( )
inline
void operator() ( const tbb::blocked_range< size_t > &  range) const
inline

Never call this method directly - it is use by TBB and has to be public!

void setIntegrationOrder ( unsigned int  order)
inline
void setThreaded ( bool  threaded)
inline

get & set


The documentation for this class was generated from the following file: