mirror of https://github.com/AxioDL/zeus.git
Added skZero for other vector types
This commit is contained in:
parent
f1e3db1c50
commit
8603353cf7
|
@ -94,7 +94,7 @@ public:
|
||||||
{
|
{
|
||||||
v[0] = x;
|
v[0] = x;
|
||||||
v[1] = y;
|
v[1] = y;
|
||||||
v[2] = 0;
|
v[2] = 0.0f;
|
||||||
v[3] = 0.0f;
|
v[3] = 0.0f;
|
||||||
}
|
}
|
||||||
CVector2f(float x, float y) { assign(x, y); }
|
CVector2f(float x, float y) { assign(x, y); }
|
||||||
|
@ -313,14 +313,7 @@ public:
|
||||||
|
|
||||||
inline void zeroOut()
|
inline void zeroOut()
|
||||||
{
|
{
|
||||||
#if __SSE__
|
*this = CVector2f::skZero;
|
||||||
mVec128 = _mm_xor_ps(mVec128, mVec128);
|
|
||||||
#else
|
|
||||||
v[0] = 0.0;
|
|
||||||
v[1] = 0.0;
|
|
||||||
v[2] = 0.0;
|
|
||||||
v[3] = 0.0;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void splat(float xy)
|
inline void splat(float xy)
|
||||||
|
|
|
@ -58,7 +58,6 @@ public:
|
||||||
v[0] = x;
|
v[0] = x;
|
||||||
v[1] = y;
|
v[1] = y;
|
||||||
v[2] = z;
|
v[2] = z;
|
||||||
v[3] = 0.0;
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,15 +139,7 @@ public:
|
||||||
|
|
||||||
void zeroOut()
|
void zeroOut()
|
||||||
{
|
{
|
||||||
#if __SSE__
|
*this = skZero;
|
||||||
_mm_xor_pd(mVec128[0], mVec128[0]);
|
|
||||||
_mm_xor_pd(mVec128[1], mVec128[1]);
|
|
||||||
#else
|
|
||||||
v[0] = 0.0;
|
|
||||||
v[1] = 0.0;
|
|
||||||
v[2] = 0.0;
|
|
||||||
v[3] = 0.0;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline CVector3d operator+(const CVector3d& rhs) const
|
inline CVector3d operator+(const CVector3d& rhs) const
|
||||||
|
@ -203,6 +194,8 @@ public:
|
||||||
__m128d mVec128[2];
|
__m128d mVec128[2];
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const CVector3d skZero;
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline CVector3d operator+(double lhs, const CVector3d& rhs)
|
static inline CVector3d operator+(double lhs, const CVector3d& rhs)
|
||||||
|
|
|
@ -317,14 +317,7 @@ public:
|
||||||
|
|
||||||
inline void zeroOut()
|
inline void zeroOut()
|
||||||
{
|
{
|
||||||
#if __SSE__
|
*this = CVector3f::skZero;
|
||||||
mVec128 = _mm_xor_ps(mVec128, mVec128);
|
|
||||||
#else
|
|
||||||
v[0] = 0.0;
|
|
||||||
v[1] = 0.0;
|
|
||||||
v[2] = 0.0;
|
|
||||||
v[3] = 0.0;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void splat(float xyz)
|
inline void splat(float xyz)
|
||||||
|
|
|
@ -347,14 +347,7 @@ public:
|
||||||
|
|
||||||
inline void zeroOut()
|
inline void zeroOut()
|
||||||
{
|
{
|
||||||
#if __SSE__
|
*this = CVector4f::skZero;
|
||||||
mVec128 = _mm_xor_ps(mVec128, mVec128);
|
|
||||||
#else
|
|
||||||
v[0] = 0.0;
|
|
||||||
v[1] = 0.0;
|
|
||||||
v[2] = 0.0;
|
|
||||||
v[3] = 0.0;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void splat(float xyzw)
|
inline void splat(float xyzw)
|
||||||
|
|
|
@ -8,7 +8,7 @@ namespace zeus
|
||||||
{
|
{
|
||||||
const CVector2f CVector2f::skOne = CVector2f(1.0);
|
const CVector2f CVector2f::skOne = CVector2f(1.0);
|
||||||
const CVector2f CVector2f::skNegOne = CVector2f(-1.0);
|
const CVector2f CVector2f::skNegOne = CVector2f(-1.0);
|
||||||
const CVector2f CVector2f::skZero;
|
const CVector2f CVector2f::skZero(0.f, 0.f);
|
||||||
|
|
||||||
float CVector2f::getAngleDiff(const CVector2f& a, const CVector2f& b)
|
float CVector2f::getAngleDiff(const CVector2f& a, const CVector2f& b)
|
||||||
{
|
{
|
||||||
|
|
|
@ -18,6 +18,7 @@ const CVector3f CVector3f::skUp(0.f, 0.f, 1.f);
|
||||||
const CVector3f CVector3f::skDown(0.f, 0.f, -1.f);
|
const CVector3f CVector3f::skDown(0.f, 0.f, -1.f);
|
||||||
const CVector3f CVector3f::skRadToDegVec(180.0f / M_PIF);
|
const CVector3f CVector3f::skRadToDegVec(180.0f / M_PIF);
|
||||||
const CVector3f CVector3f::skDegToRadVec(M_PIF / 180.0f);
|
const CVector3f CVector3f::skDegToRadVec(M_PIF / 180.0f);
|
||||||
|
const CVector3d CVector3d::skZero(0.0, 0.0, 0.0);
|
||||||
|
|
||||||
CVector3f::CVector3f(const CVector3d& vec)
|
CVector3f::CVector3f(const CVector3d& vec)
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
namespace zeus
|
namespace zeus
|
||||||
{
|
{
|
||||||
|
const CVector4f CVector4f::skZero(0.f, 0.f, 0.f, 0.f);
|
||||||
|
|
||||||
CVector4f::CVector4f(const zeus::CColor& other) : x(other.r), y(other.g), z(other.b), w(other.a) {}
|
CVector4f::CVector4f(const zeus::CColor& other) : x(other.r), y(other.g), z(other.b), w(other.a) {}
|
||||||
|
|
||||||
CVector4f& CVector4f::operator=(const CColor& other)
|
CVector4f& CVector4f::operator=(const CColor& other)
|
||||||
|
|
Loading…
Reference in New Issue