diff --git a/include/Nazara/Math/Quaternion.hpp b/include/Nazara/Math/Quaternion.hpp index 4521ea909..35e6a7b65 100644 --- a/include/Nazara/Math/Quaternion.hpp +++ b/include/Nazara/Math/Quaternion.hpp @@ -76,6 +76,7 @@ template class NzQuaternion static NzQuaternion Identity(); static NzQuaternion Lerp(const NzQuaternion& from, const NzQuaternion& to, T interpolation); + static NzQuaternion Normalize(const NzQuaternion& quat, T* length = nullptr); static NzQuaternion RotationBetween(const NzVector3& from, const NzVector3& to); static NzQuaternion Slerp(const NzQuaternion& from, const NzQuaternion& to, T interpolation); static NzQuaternion Zero(); diff --git a/include/Nazara/Math/Quaternion.inl b/include/Nazara/Math/Quaternion.inl index 76290c0c7..8348a5e2f 100644 --- a/include/Nazara/Math/Quaternion.inl +++ b/include/Nazara/Math/Quaternion.inl @@ -408,6 +408,12 @@ NzQuaternion NzQuaternion::Lerp(const NzQuaternion& from, const NzQuaterni return interpolated; } +template +NzQuaternion NzQuaternion::Normalize(const NzQuaternion& quat, T* length) +{ + return quat.GetNormal(length); +} + template NzQuaternion NzQuaternion::RotationBetween(const NzVector3& from, const NzVector3& to) {