Additional Athena support

This commit is contained in:
Jack Andersen 2015-10-23 15:23:23 -10:00
parent 1901de914c
commit 2efe395f50
2 changed files with 13 additions and 1 deletions

View File

@ -17,6 +17,10 @@ public:
CTransform() : m_basis(false) {} CTransform() : m_basis(false) {}
CTransform(const CMatrix3f& basis, const CVector3f& offset=CVector3f::skZero) : CTransform(const CMatrix3f& basis, const CVector3f& offset=CVector3f::skZero) :
m_basis(basis), m_origin(offset) {} m_basis(basis), m_origin(offset) {}
#if ZE_ATHENA_TYPES
CTransform(const atVec4f* mtx)
: m_basis(mtx[0], mtx[1], mtx[2]), m_origin(mtx[0].vec[3], mtx[1].vec[3], mtx[2].vec[3]) {}
#endif
inline CTransform operator*(const CTransform& rhs) const inline CTransform operator*(const CTransform& rhs) const
{return CTransform(m_basis * rhs.m_basis, m_origin + (m_basis * rhs.m_origin));} {return CTransform(m_basis * rhs.m_basis, m_origin + (m_basis * rhs.m_origin));}

View File

@ -27,6 +27,14 @@ public:
{ {
x = vec.vec[0], y = vec.vec[1], z = vec.vec[2], v[3] = 0.0f; x = vec.vec[0], y = vec.vec[1], z = vec.vec[2], v[3] = 0.0f;
} }
#endif
CVector3f(const atVec4f& vec)
#if __SSE__
: mVec128(vec.mVec128){}
#else
{
x = vec.vec[0], y = vec.vec[1], z = vec.vec[2], v[3] = 0.0f;
}
#endif #endif
#endif #endif
CVector3f(float xyz) {splat(xyz);} CVector3f(float xyz) {splat(xyz);}