Add NormalizeAngleRad

This commit is contained in:
Georg Hagen
2024-12-08 18:39:08 +01:00
parent 367b8b58eb
commit 8794e8979c

View File

@@ -36,6 +36,22 @@ namespace OpenVulkano::Math
{ {
return val * val; return val * val;
} }
// Ensures that a given angle is between 0 and 2 pi
template<typename T, typename = std::enable_if_t<std::is_floating_point_v<T>>>
constexpr T NormalizeAngleRad(T angle)
{
constexpr T PIX2 = 2 * std::numbers::pi;
while (angle < 0)
{
angle += PIX2;
}
while (angle >= PIX2)
{
angle -= PIX2;
}
return angle;
}
} }
template<typename T> using Matrix2_SIMD = glm::tmat2x2<T, glm::aligned>; template<typename T> using Matrix2_SIMD = glm::tmat2x2<T, glm::aligned>;