Added Conversions To and From WXYZ Quaternion Representations #295

Merged
direnbharwani merged 3 commits from SP3-16-Math into main 2022-12-27 13:58:26 +08:00
2 changed files with 18 additions and 3 deletions
Showing only changes of commit 3b55888fa1 - Show all commits

View File

@ -443,4 +443,16 @@ namespace SHADE
return result;
}
SHQuaternion SHQuaternion::FromWXYZ(float w, float x, float y, float z) noexcept
{
return SHQuaternion{ x, y, z, w };
}
void SHQuaternion::ToWXYZ(const SHQuaternion& from, float& w, float& x, float& y, float& z) noexcept
{
x = from.x;
y = from.y;
z = from.z;
w = from.w;
}
} // namespace SHADE

View File

@ -125,9 +125,12 @@ namespace SHADE
[[nodiscard]] static SHQuaternion ClampedLerp (const SHQuaternion& q1, const SHQuaternion& q2, float t, float tMin = 0.0f, float tMax = 1.0f) noexcept;
[[nodiscard]] static SHQuaternion ClampedSlerp (const SHQuaternion& q1, const SHQuaternion& q2, float t, float tMin = 0.0f, float tMax = 1.0f) noexcept;
[[nodiscard]] static SHQuaternion FromToRotation (const SHVec3& from, const SHVec3& to) noexcept;
[[nodiscard]] static SHQuaternion LookRotation (const SHVec3& forward, const SHVec3& up) noexcept;
[[nodiscard]] static SHQuaternion RotateTowards (const SHQuaternion& from, const SHQuaternion& to, float maxAngleInRad) noexcept;
[[nodiscard]] static SHQuaternion FromToRotation (const SHVec3& from, const SHVec3& to) noexcept;
[[nodiscard]] static SHQuaternion LookRotation (const SHVec3& forward, const SHVec3& up) noexcept;
[[nodiscard]] static SHQuaternion RotateTowards (const SHQuaternion& from, const SHQuaternion& to, float maxAngleInRad) noexcept;
[[nodiscard]] static SHQuaternion FromWXYZ (float w, float x, float y, float z) noexcept;
static void ToWXYZ (const SHQuaternion& from, float& w, float& x, float& y, float& z) noexcept;
};
SHQuaternion operator*(float lhs, const SHQuaternion& rhs) noexcept;