Added conversions to and from wxyz quaternion representations

This commit is contained in:
Diren D Bharwani 2022-12-16 23:19:44 +08:00
parent bbffdc5cd7
commit 3b55888fa1
2 changed files with 18 additions and 3 deletions

View File

@ -443,4 +443,16 @@ namespace SHADE
return result; 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 } // 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 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 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 FromToRotation (const SHVec3& from, const SHVec3& to) noexcept;
[[nodiscard]] static SHQuaternion LookRotation (const SHVec3& forward, const SHVec3& up) 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 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; SHQuaternion operator*(float lhs, const SHQuaternion& rhs) noexcept;