From 7bcc920662ba9785b68788f61f614088e87f24e8 Mon Sep 17 00:00:00 2001 From: "r.ramazanov" Date: Thu, 17 Apr 2014 09:35:26 +0400 Subject: [PATCH] Mobs rotation --- src/Defines.h | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/Defines.h b/src/Defines.h index 1a8b3fa4a..9fa3b3a8e 100644 --- a/src/Defines.h +++ b/src/Defines.h @@ -493,15 +493,17 @@ inline void EulerToVector(double a_Pan, double a_Pitch, double & a_X, double & a inline void VectorToEuler(double a_X, double a_Y, double a_Z, double & a_Pan, double & a_Pitch) { - if (fabs(a_X) < std::numeric_limits::epsilon()) - { - a_Pan = atan2(a_Z, a_X) * 180 / PI - 90; - } - else + double r = sqrt((a_X * a_X) + (a_Z * a_Z)); + if (r < std::numeric_limits::epsilon()) { a_Pan = 0; } - a_Pitch = atan2(a_Y, sqrt((a_X * a_X) + (a_Z * a_Z))) * 180 / PI; + else + { + a_Pan = atan2(a_Z, a_X) * 180 / PI - 90; + } + + a_Pitch = atan2(a_Y, r) * 180 / PI; }