summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--opentrack-logic/simple-mat.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/opentrack-logic/simple-mat.cpp b/opentrack-logic/simple-mat.cpp
index 6397ed4e..1aaeb296 100644
--- a/opentrack-logic/simple-mat.cpp
+++ b/opentrack-logic/simple-mat.cpp
@@ -12,21 +12,21 @@ euler_t OPENTRACK_LOGIC_EXPORT rmat_to_euler(const dmat<3, 3>& R)
const double cy = sqrt(R(2,2)*R(2, 2) + R(2, 1)*R(2, 1));
const bool large_enough = cy > 1e-10;
if (large_enough)
- return euler_t(atan2(-R(2, 1), R(2, 2)),
+ return euler_t(atan2(-R(1, 0), R(0, 0)),
atan2(R(2, 0), cy),
- atan2(-R(1, 0), R(0, 0)));
+ atan2(-R(2, 1), R(2, 2)));
else
- return euler_t(0.,
+ return euler_t(atan2(R(0, 1), R(1, 1)),
atan2(R(2, 0), cy),
- atan2(R(0, 1), R(1, 1)));
+ 0);
}
// tait-bryan angles, not euler
rmat OPENTRACK_LOGIC_EXPORT euler_to_rmat(const euler_t& input)
{
- const double H = input(0);
- const double P = input(1);
- const double B = input(2);
+ const double H = -input(0);
+ const double P = -input(1);
+ const double B = -input(2);
using std::cos;
using std::sin;