33 #ifndef OPENVDB_TOOLS_VECTORTRANSFORMER_HAS_BEEN_INCLUDED
34 #define OPENVDB_TOOLS_VECTORTRANSFORMER_HAS_BEEN_INCLUDED
36 #include <openvdb/Types.h>
37 #include <openvdb/math/Mat4.h>
38 #include <openvdb/math/Vec3.h>
40 #include <boost/utility/enable_if.hpp>
50 template<
typename Gr
idType>
64 template<
typename TreeIterT>
void operator()(
const TreeIterT& it)
const
67 it.setValue(mat.transformH(v));
75 template<
typename TreeIterT>
79 it.setValue(mat.transform3x3(v));
87 template<
typename TreeIterT>
91 v = mat.transform3x3(v);
99 template<
typename Gr
idType>
inline
100 typename boost::disable_if_c<VecTraits<typename GridType::ValueType>::IsVec,
void>::type
107 template<
typename Gr
idType>
inline
108 typename boost::enable_if_c<VecTraits<typename GridType::ValueType>::IsVec,
void>::type
111 if (!grid.isInWorldSpace())
return;
113 const VecType vecType = grid.getVectorType();
124 foreach(grid.beginValueAll(),
MatMul(invmat));
130 foreach(grid.beginValueAll(),
MatMul(mat));
143 template<
typename Gr
idType>
147 doTransformVectors<GridType>(grid, mat);
154 #endif // OPENVDB_TOOLS_VECTORTRANSFORMER_HAS_BEEN_INCLUDED
VecType
Definition: Types.h:198
#define OPENVDB_THROW(exception, message)
Definition: Exceptions.h:97
Mat4 inverse(T tolerance=0) const
Definition: Mat4.h:490
Definition: Exceptions.h:87
math::Mat4< double > Mat4d
Definition: Types.h:101
#define OPENVDB_VERSION_NAME
Definition: version.h:45
Vec3< double > Vec3d
Definition: Vec3.h:625
#define OPENVDB_USE_VERSION_NAMESPACE
Definition: version.h:67
Mat4 transpose() const
Definition: Mat4.h:477