25 #ifndef OPENVDB_TOOLS_VELOCITY_FIELDS_HAS_BEEN_INCLUDED 
   26 #define OPENVDB_TOOLS_VELOCITY_FIELDS_HAS_BEEN_INCLUDED 
   28 #include <tbb/parallel_reduce.h> 
   41 template <
typename VelGr
idT, 
typename Interpolator = BoxSampler>
 
   48         "DiscreteField requires a floating point grid.");
 
   51         : mAccessor(vel.tree())
 
   58         : mAccessor(other.mAccessor.tree())
 
   59         , mTransform(other.mTransform)
 
   74         return Interpolator::sample(mAccessor, mTransform->
worldToIndex(xyz));
 
   83         return mAccessor.getValue(ijk);
 
   87     const typename VelGridT::ConstAccessor mAccessor;
 
  100 template <
typename ScalarT = 
float>
 
  107         "EnrightField requires a floating point grid.");
 
  123         return (*
this)(ijk.asVec3d(), 
time);
 
  127 template <
typename ScalarT>
 
  131     const ScalarT 
pi = math::pi<ScalarT>();
 
  132     const ScalarT phase = pi / ScalarT(3);
 
  133     const ScalarT Px =  pi * ScalarT(xyz[0]), Py = pi * ScalarT(xyz[1]), Pz = pi * ScalarT(xyz[2]);
 
  134     const ScalarT tr =  
math::Cos(ScalarT(time) * phase);
 
  151          bool Staggered = 
false,
 
  162         mAcc(grid.getAccessor())
 
  168         mAcc(mGrid->getAccessor())
 
  178     template <
typename LocationType>
 
  181         const Vec3R xyz = mGrid->worldToIndex(
Vec3R(world[0], world[1], world[2]));
 
  191     template <
typename LocationType>
 
  194         const Vec3R xyz = mGrid->worldToIndex(
Vec3R(world[0], world[1], world[2]));
 
  213          bool Staggered = 
false,
 
  214          size_t SampleOrder = 1>
 
  229     template<
size_t OrderRK, 
typename LocationType>
 
  232         static_assert(OrderRK <= 4);
 
  233         VecType P(static_cast<ElementType>(world[0]),
 
  234                   static_cast<ElementType>(world[1]),
 
  235                   static_cast<ElementType>(world[2]));
 
  239         } 
else if (OrderRK == 1) {
 
  241             mVelSampler.
sample(P, V0);
 
  243         } 
else if (OrderRK == 2) {
 
  245             mVelSampler.
sample(P, V0);
 
  248         } 
else if (OrderRK == 3) {
 
  250             mVelSampler.
sample(P, V0);
 
  254         } 
else if (OrderRK == 4) {
 
  256             mVelSampler.
sample(P, V0);
 
  259             mVelSampler.
sample(P + dt * V2, V3);
 
  263         world += LocationType(static_cast<OutType>(P[0]),
 
  264                               static_cast<OutType>(P[1]),
 
  265                               static_cast<OutType>(P[2]));
 
  276 #endif // OPENVDB_TOOLS_VELOCITY_FIELDS_HAS_BEEN_INCLUDED 
Type Pow2(Type x)
Return x2. 
 
GT_API const UT_StringHolder time
 
GLsizei const GLfloat * value
 
GLboolean GLboolean GLboolean GLboolean a
 
#define OPENVDB_USE_VERSION_NAMESPACE
 
float Cos(const float &x)
Return cos x. 
 
**But if you need a result
 
GLboolean GLboolean GLboolean b
 
that also have some descendant prim *whose name begins with which in turn has a child named baz where *the predicate active
 
__hostdev__ constexpr T pi()
Pi constant taken from Boost to match old behaviour. 
 
float Sin(const float &x)
Return sin x. 
 
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.