OpenVDB 11.0.0
Loading...
Searching...
No Matches
EnrightField< ScalarT > Class Template Reference

Analytical, divergence-free and periodic velocity field. More...

#include <openvdb/tools/VelocityFields.h>

Public Types

typedef ScalarT ValueType
 
typedef math::Vec3< ScalarT > VectorType
 

Public Member Functions

 EnrightField ()
 
math::Transform transform () const
 
VectorType operator() (const Vec3d &xyz, ValueType time) const
 
VectorType operator() (const Coord &ijk, ValueType time) const
 

Detailed Description

template<typename ScalarT = float>
class openvdb::v11_0::tools::EnrightField< ScalarT >

Analytical, divergence-free and periodic velocity field.

Note
Primarily intended for debugging!
Warning
This analytical velocity only produce meaningful values in the unit box in world space. In other words make sure any level set surface is fully enclosed in the axis aligned bounding box spanning 0->1 in world units.

Member Typedef Documentation

◆ ValueType

template<typename ScalarT = float>
typedef ScalarT ValueType

◆ VectorType

template<typename ScalarT = float>
typedef math::Vec3<ScalarT> VectorType

Constructor & Destructor Documentation

◆ EnrightField()

template<typename ScalarT = float>
EnrightField ( )
inline

Member Function Documentation

◆ operator()() [1/2]

template<typename ScalarT = float>
VectorType operator() ( const Coord & ijk,
ValueType time ) const
inline
Returns
the velocity at the coordinate space position ijk

◆ operator()() [2/2]

template<typename ScalarT >
math::Vec3< ScalarT > operator() ( const Vec3d & xyz,
ValueType time ) const
inline
Returns
the velocity in world units, evaluated at the world position xyz and at the specified time

◆ transform()

template<typename ScalarT = float>
math::Transform transform ( ) const
inline
Returns
const reference to the identity transform between world and index space
Note
Use this method to determine if a client grid is aligned with the coordinate space of this velocity field