Add NormalizeAngleRad
This commit is contained in:
@@ -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>;
|
||||||
|
|||||||
Reference in New Issue
Block a user