mirror of https://github.com/AxioDL/zeus.git
* Add Athena vector types
This commit is contained in:
parent
829cf51c37
commit
3a25f59adb
|
@ -17,6 +17,16 @@ class ZE_ALIGN(16) CVector2f
|
|||
inline CVector2f() {zeroOut();}
|
||||
#if __SSE__
|
||||
CVector2f(const __m128& mVec128) : mVec128(mVec128) {v[2] = 0.0f; v[3] = 0.0f;}
|
||||
#endif
|
||||
#if ZE_ATHENA_TYPES
|
||||
CVector2f(const atVec2f& vec)
|
||||
#if __SSE__
|
||||
: mVec128(vec.mVec128){}
|
||||
#else
|
||||
{
|
||||
x = vec.vec[0], y = vec.vec[1], v[2] = 0.0f, v[3] = 0.0f;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
CVector2f(float xy) {splat(xy);}
|
||||
CVector2f(float x, float y) {v[0] = x; v[1] = y; v[2] = 0; v[3] = 0.0;}
|
||||
|
|
|
@ -16,6 +16,16 @@ public:
|
|||
inline CVector3f() {zeroOut();}
|
||||
#if __SSE__
|
||||
CVector3f(const __m128& mVec128) : mVec128(mVec128) {v[3] = 0.0f;}
|
||||
#endif
|
||||
#if ZE_ATHENA_TYPES
|
||||
CVector3f(const atVec3f& 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
|
||||
CVector3f(float xyz) {splat(xyz);}
|
||||
CVector3f(float x, float y, float z) {v[0] = x; v[1] = y; v[2] = z; v[3] = 0.0;}
|
||||
|
|
|
@ -18,6 +18,17 @@ class ZE_ALIGN(16) CVector4f
|
|||
#if __SSE__
|
||||
CVector4f(const __m128& mVec128) : mVec128(mVec128) {}
|
||||
#endif
|
||||
#if ZE_ATHENA_TYPES
|
||||
CVector4f(const atVec4f& vec)
|
||||
#if __SSE__
|
||||
: mVec128(vec.mVec128){}
|
||||
#else
|
||||
{
|
||||
x = vec.vec[0], y = vec.vec[1], z = vec.vec[2], w = vec.vec[3];
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
CVector4f(float xyzw) {splat(xyzw);}
|
||||
CVector4f(float x, float y, float z, float w) {v[0] = x; v[1] = y; v[2] = z; v[3] = w;}
|
||||
CVector4f(Athena::io::IStreamReader& input)
|
||||
|
|
Loading…
Reference in New Issue