ksys/phys: Add more RigidBody functions

This commit is contained in:
Léo Lam
2022-01-26 01:39:59 +01:00
parent e4f1a053cd
commit e1f3e551cb
9 changed files with 254 additions and 19 deletions
@@ -20,9 +20,14 @@ public:
HK_FORCE_INLINE hkSimdFloat32 getRealPart() const;
HK_FORCE_INLINE const hkVector4f& getImag() const;
HK_FORCE_INLINE hkFloat32 getAngle() const;
hkSimdFloat32 getAngleSr() const;
HK_FORCE_INLINE void mul(hkQuaternionfParameter q);
HK_FORCE_INLINE void setMul(hkQuaternionfParameter q0, hkQuaternionfParameter q1);
HK_FORCE_INLINE void setInverse(hkQuaternionfParameter q);
HK_FORCE_INLINE static const hkQuaternionf& getIdentity();
hkVector4f m_vec;
@@ -62,6 +67,10 @@ inline const hkVector4f& hkQuaternionf::getImag() const {
return m_vec;
}
inline hkFloat32 hkQuaternionf::getAngle() const {
return getAngleSr().val();
}
inline void hkQuaternionf::mul(hkQuaternionfParameter q) {
setMul(*this, q);
}
@@ -79,6 +88,10 @@ inline void hkQuaternionf::setMul(hkQuaternionfParameter r, hkQuaternionfParamet
m_vec.setXYZ_W(vec, (rReal * qReal) - rImag.dot<3>(qImag));
}
inline void hkQuaternionf::setInverse(const hkQuaternionf& q) {
m_vec.setNeg<3>(q.getImag());
}
inline const hkQuaternionf& hkQuaternionf::getIdentity() {
return reinterpret_cast<const hkQuaternionf&>(g_vectorfConstants[HK_QUADREAL_0001]);
}