mathlib: Vector class major cleanup

This commit is contained in:
Anton Babushkin
2013-12-24 23:56:28 +04:00
parent a26e46bede
commit 9dfe366e90
7 changed files with 210 additions and 193 deletions
+2 -25
View File
@@ -94,11 +94,11 @@ public:
return data[row][col];
}
unsigned int getRows() {
unsigned int get_rows() {
return M;
}
unsigned int getCols() {
unsigned int get_cols() {
return N;
}
@@ -295,11 +295,7 @@ public:
return res;
}
};
}
#include "Quaternion.hpp"
namespace math {
template <>
class __EXPORT Matrix<3, 3> : public MatrixBase<3, 3> {
public:
@@ -329,25 +325,6 @@ public:
return res;
}
/**
* create a rotation matrix from given quaternion
*/
void from_quaternion(const Quaternion &q) {
float aSq = q.data[0] * q.data[0];
float bSq = q.data[1] * q.data[1];
float cSq = q.data[2] * q.data[2];
float dSq = q.data[3] * q.data[3];
data[0][0] = aSq + bSq - cSq - dSq;
data[0][1] = 2.0f * (q.data[1] * q.data[2] - q.data[0] * q.data[3]);
data[0][2] = 2.0f * (q.data[0] * q.data[2] + q.data[1] * q.data[3]);
data[1][0] = 2.0f * (q.data[1] * q.data[2] + q.data[0] * q.data[3]);
data[1][1] = aSq - bSq + cSq - dSq;
data[1][2] = 2.0f * (q.data[2] * q.data[3] - q.data[0] * q.data[1]);
data[2][0] = 2.0f * (q.data[1] * q.data[3] - q.data[0] * q.data[2]);
data[2][1] = 2.0f * (q.data[0] * q.data[1] + q.data[2] * q.data[3]);
data[2][2] = aSq - bSq - cSq + dSq;
}
/**
* create a rotation matrix from given euler angles
* based on http://gentlenav.googlecode.com/files/EulerAngles.pdf