Improved NomalizeAngle function
Former-commit-id: 79793b0c57a333e6d2d4a41a14f2b7fdc1d1f093
This commit is contained in:
parent
b7307c462a
commit
7e9c5e9a06
|
|
@ -210,29 +210,20 @@ T NzNormalizeAngle(T angle)
|
||||||
#else
|
#else
|
||||||
const T limit = F(180.0);
|
const T limit = F(180.0);
|
||||||
#endif
|
#endif
|
||||||
|
const T twoLimit = limit*F(2.0);
|
||||||
|
|
||||||
///TODO: Trouver une solution sans duplication
|
angle = std::fmod(angle + limit, twoLimit);
|
||||||
if (angle > F(0.0))
|
if (angle < F(0.0))
|
||||||
{
|
angle += twoLimit;
|
||||||
angle += limit;
|
|
||||||
angle -= static_cast<int>(angle / (F(2.0)*limit)) * (F(2.0)*limit);
|
|
||||||
angle -= limit;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
angle -= limit;
|
|
||||||
angle -= static_cast<int>(angle / (F(2.0)*limit)) * (F(2.0)*limit);
|
|
||||||
angle += limit;
|
|
||||||
}
|
|
||||||
|
|
||||||
return angle;
|
return angle - limit;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
bool NzNumberEquals(T a, T b, T maxDifference)
|
bool NzNumberEquals(T a, T b, T maxDifference)
|
||||||
{
|
{
|
||||||
T diff = a - b;
|
T diff = a - b;
|
||||||
if (diff < 0)
|
if (diff < F(0.0))
|
||||||
diff = -diff;
|
diff = -diff;
|
||||||
|
|
||||||
return diff <= maxDifference;
|
return diff <= maxDifference;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue