28 #include <opencv2/opencv.hpp>
48 cv::Mat quaternion_mat;
79 static void MirrorMat(cv::Mat &mat,
bool x,
bool y,
bool z);
113 static void QuatInv(
const double *q,
double *qi);
127 static void QuatMul(
const double *q1,
const double *q2,
double *q3);
This file defines library export definitions, version numbers and build information.
This file implements generic utility functions and a serialization interface.
Rotation structure and transformations between different parameterizations.
static void QuatToMat16(const double *quat, double *mat)
Converts a rotation described by a quaternion into 4x4 OpenGL-like transformation matrix....
void GetQuaternion(cv::Mat &mat) const
Returns the rotation in quaternion form.
Rotation(const cv::Mat &data, RotationType t)
Constructor.
void Reset()
Resets the rotation into identity.
static void QuatToMat9(const double *quat, double *mat)
Converts a rotation described by a quaternion into 3x3 rotation matrix.
void GetRodriques(cv::Mat &mat) const
Returns the rotation in rotation vector form.
void SetQuaternion(const cv::Mat &mat)
Sets the rotation from given quaternion.
static void QuatNorm(double *q)
Normalizes a quaternion.
static void EulToQuat(const double *eul, double *quat)
Converts a rotation described by Euler angles into quaternion form.
void SetMatrix(const cv::Mat &mat)
Sets the rotation from given rotation matrix. 3x3 and 4x4 matrices are allowed.
void SetEuler(const cv::Mat &mat)
Sets the rotation from given Euler angles.
void GetMatrix(cv::Mat &mat) const
Returns the rotation in matrix form. 3x3 and 4x4 matrices are allowed.
static void RodToMat9(const double *rod, double *mat)
Converts 3x1 rotation vector into 3x3 rotation matrix using Rodriques' formula.
static void QuatInv(const double *q, double *qi)
Inverts unit quaternion.
void SetQuaternion(const double *quat)
Sets the rotation from given quaternion.
void Mirror(bool x, bool y, bool z)
Mirrors the rotation in selected directions.
static void MirrorMat(cv::Mat &mat, bool x, bool y, bool z)
Simple function to mirror a rotation matrix in different directions.
static void Mat9ToQuat(const double *mat, double *quat)
Converts a 3x3 rotation martix into quaternion form.
RotationType
Rotation can be represented in four ways: quaternion (QUAT), matrix (MAT), euler angles (EUL) and exp...
static void Mat9ToRod(double *mat, double *rod)
Converts 3x3 rotation matrix into Rodriques representation.
static void QuatToEul(const double *q, double *eul)
Converts a rotation described by a quaternion into Euler angles.
void SetRodriques(const cv::Mat &mat)
Sets the rotation from given rotation vector.
static void QuatMul(const double *q1, const double *q2, double *q3)
Quaternion multiplication.
void GetEuler(cv::Mat &mat) const
Returns the rotation in Euler angles.