summaryrefslogtreecommitdiffstats
path: root/src/Defines.h
diff options
context:
space:
mode:
authorMattes D <github@xoft.cz>2014-04-17 08:45:14 +0200
committerMattes D <github@xoft.cz>2014-04-17 08:45:14 +0200
commit35e847d2f5234e67546d8ee7b8160d65289bb687 (patch)
tree19435c626c4bce371b52930914462696da0b6be0 /src/Defines.h
parentAdded asserts for proper game state. (diff)
parentMobs rotation (diff)
downloadcuberite-35e847d2f5234e67546d8ee7b8160d65289bb687.tar
cuberite-35e847d2f5234e67546d8ee7b8160d65289bb687.tar.gz
cuberite-35e847d2f5234e67546d8ee7b8160d65289bb687.tar.bz2
cuberite-35e847d2f5234e67546d8ee7b8160d65289bb687.tar.lz
cuberite-35e847d2f5234e67546d8ee7b8160d65289bb687.tar.xz
cuberite-35e847d2f5234e67546d8ee7b8160d65289bb687.tar.zst
cuberite-35e847d2f5234e67546d8ee7b8160d65289bb687.zip
Diffstat (limited to '')
-rw-r--r--src/Defines.h10
1 files changed, 6 insertions, 4 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<double>::epsilon())
+ double r = sqrt((a_X * a_X) + (a_Z * a_Z));
+ if (r < std::numeric_limits<double>::epsilon())
{
- a_Pan = atan2(a_Z, a_X) * 180 / PI - 90;
+ a_Pan = 0;
}
else
{
- a_Pan = 0;
+ a_Pan = atan2(a_Z, a_X) * 180 / PI - 90;
}
- a_Pitch = atan2(a_Y, sqrt((a_X * a_X) + (a_Z * a_Z))) * 180 / PI;
+
+ a_Pitch = atan2(a_Y, r) * 180 / PI;
}