diff options
Diffstat (limited to 'meowpp/math/LinearTransformations.h')
-rw-r--r-- | meowpp/math/LinearTransformations.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/meowpp/math/LinearTransformations.h b/meowpp/math/LinearTransformations.h new file mode 100644 index 0000000..4878834 --- /dev/null +++ b/meowpp/math/LinearTransformations.h @@ -0,0 +1,38 @@ +#ifndef math_LinearTransformations_H__ +#define math_LinearTransformations_H__ + +#include "LinearTransformation.h" + +#include <cstdlib> + +namespace meow{ + template<class Scalar> + class Rotation3D: public LinearTransformation<Scalar>{ + private: + Scalar _theta[3]; + void calcMatrix(); + public: + Rotation3D(); + + void axisTheta(Matrix<Scalar> const& __axis, Scalar const& __theta); + + Scalar parameter(size_t __i) const; + Scalar parameter(size_t __i, Scalar const& __s); + + Matrix<Scalar> transformate(Matrix<Scalar> const& __x) const; + Matrix<Scalar> jacobian (Matrix<Scalar> const& __x) const; + Matrix<Scalar> jacobian (Matrix<Scalar> const& __x, + size_t __i) const; + + Matrix<Scalar> invTransformate(Matrix<Scalar> const& __x) const; + Matrix<Scalar> invJacobian (Matrix<Scalar> const& __x) const; + Matrix<Scalar> invJacobian (Matrix<Scalar> const& __x, + size_t __i) const; + + Matrix<Scalar> invMatrix() const; + }; +} + +#include "LinearTransformations.hpp" + +#endif // math_LinearTransformations_H__ |