Loading...
Searching...
No Matches
PointAdvect< GridT, PointListT, StaggeredVelocity, InterrupterType > Class Template Reference

`#include <openvdb/tools/PointAdvect.h>`

## Public Types

using | GridType = GridT
using | PointListType = PointListT
using | LocationType = typename PointListT::value_type
using | VelocityFieldIntegrator = VelocityIntegrator<GridT, StaggeredVelocity>

## Public Member Functions

| PointAdvect (const GridT &velGrid, InterrupterType *interrupter=nullptr)
| PointAdvect (const PointAdvect &other)
virtual | ~PointAdvect ()
bool | earlyOut () const
| If the order of the integration is set to zero no advection is performed.
void | setThreaded (bool threaded)
| get & set
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.
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!

## Detailed Description

template<typename GridT = Vec3fGrid, typename PointListT = std::vector<typename GridT::ValueType>, bool StaggeredVelocity = false, typename InterrupterType = util::NullInterrupter>
class openvdb::v10_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:
using value_type = internal_vector3_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
};
openvdb::v10_0::tools::PointList
std::unique_ptr< openvdb::Vec3s[]> PointList
Point and primitive list types.
Definition VolumeToMesh.h:160
openvdb::v10_0::Index
Index32 Index
Definition Types.h:54

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

## GridType

template<typename GridT = Vec3fGrid, typename PointListT = std::vector<typename GridT::ValueType>, bool StaggeredVelocity = false, typename InterrupterType = util::NullInterrupter>

using GridType = GridT

## LocationType

template<typename GridT = Vec3fGrid, typename PointListT = std::vector<typename GridT::ValueType>, bool StaggeredVelocity = false, typename InterrupterType = util::NullInterrupter>

using LocationType = typename PointListT::value_type

## PointListType

template<typename GridT = Vec3fGrid, typename PointListT = std::vector<typename GridT::ValueType>, bool StaggeredVelocity = false, typename InterrupterType = util::NullInterrupter>

using PointListType = PointListT

## VelocityFieldIntegrator

template<typename GridT = Vec3fGrid, typename PointListT = std::vector<typename GridT::ValueType>, bool StaggeredVelocity = false, typename InterrupterType = util::NullInterrupter>

using VelocityFieldIntegrator = VelocityIntegrator<GridT, StaggeredVelocity>

## Constructor & Destructor Documentation

## PointAdvect() [1/2]

template<typename GridT = Vec3fGrid, typename PointListT = std::vector<typename GridT::ValueType>, bool StaggeredVelocity = false, typename InterrupterType = util::NullInterrupter>

PointAdvect | ( | const GridT & | velGrid,
|  | InterrupterType * | interrupter = nullptr )

inline

## PointAdvect() [2/2]

template<typename GridT = Vec3fGrid, typename PointListT = std::vector<typename GridT::ValueType>, bool StaggeredVelocity = false, typename InterrupterType = util::NullInterrupter>

PointAdvect | ( | const PointAdvect< GridT, PointListT, StaggeredVelocity, InterrupterType > & | other | ) |

inline

## ~PointAdvect()

template<typename GridT = Vec3fGrid, typename PointListT = std::vector<typename GridT::ValueType>, bool StaggeredVelocity = false, typename InterrupterType = util::NullInterrupter>

virtual ~PointAdvect | ( |  | ) |

inline virtual

## Member Function Documentation

## advect()

template<typename GridT = Vec3fGrid, typename PointListT = std::vector<typename GridT::ValueType>, bool StaggeredVelocity = false, typename InterrupterType = util::NullInterrupter>

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

inline

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

## earlyOut()

template<typename GridT = Vec3fGrid, typename PointListT = std::vector<typename GridT::ValueType>, bool StaggeredVelocity = false, typename InterrupterType = util::NullInterrupter>

bool earlyOut | ( |  | ) | const

inline

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

## getThreaded()

template<typename GridT = Vec3fGrid, typename PointListT = std::vector<typename GridT::ValueType>, bool StaggeredVelocity = false, typename InterrupterType = util::NullInterrupter>

bool getThreaded | ( |  | ) |

inline

## operator()()

template<typename GridT = Vec3fGrid, typename PointListT = std::vector<typename GridT::ValueType>, bool StaggeredVelocity = false, typename InterrupterType = util::NullInterrupter>

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!

## setIntegrationOrder()

template<typename GridT = Vec3fGrid, typename PointListT = std::vector<typename GridT::ValueType>, bool StaggeredVelocity = false, typename InterrupterType = util::NullInterrupter>

void setIntegrationOrder | ( | unsigned int | order | ) |

inline

## setThreaded()

template<typename GridT = Vec3fGrid, typename PointListT = std::vector<typename GridT::ValueType>, bool StaggeredVelocity = false, typename InterrupterType = util::NullInterrupter>

void setThreaded | ( | bool | threaded | ) |

inline

get & set