Added Conversions To and From WXYZ Quaternion Representations #295
|
@ -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
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue