重新定义2维向量的大小比较操作符,暂时去掉3维和4纬向量的比较操作符
This commit is contained in:
@@ -59,6 +59,18 @@ public:
|
|||||||
return (x != rkVector.x || y != rkVector.y);
|
return (x != rkVector.x || y != rkVector.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline bool operator > (const TVector2& rkVector) const {
|
||||||
|
if (y > rkVector.y) return true;
|
||||||
|
else if (y < rkVector.y) return false;
|
||||||
|
else return x > rkVector.x;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline bool operator < (const TVector2& rkVector) const {
|
||||||
|
if (y < rkVector.y) return true;
|
||||||
|
else if (y > rkVector.y) return false;
|
||||||
|
else return x < rkVector.x;
|
||||||
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Arithmetic operations
|
// Arithmetic operations
|
||||||
inline TVector2 operator + (const TVector2& rkVector) const {
|
inline TVector2 operator + (const TVector2& rkVector) const {
|
||||||
@@ -172,14 +184,6 @@ public:
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool operator < (const TVector2& rhs) const {
|
|
||||||
return (x < rhs.x && y < rhs.y);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline bool operator > (const TVector2& rhs) const {
|
|
||||||
return (x > rhs.x && y > rhs.y);
|
|
||||||
}
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
inline T length(void) const {
|
inline T length(void) const {
|
||||||
return MathUtil::sqrt(x * x + y * y);
|
return MathUtil::sqrt(x * x + y * y);
|
||||||
|
|||||||
@@ -194,14 +194,6 @@ public:
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool operator < (const TVector3& rhs) const {
|
|
||||||
return (x < rhs.x && y < rhs.y && z < rhs.z);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline bool operator > (const TVector3& rhs) const {
|
|
||||||
return (x > rhs.x && y > rhs.y && z > rhs.z);
|
|
||||||
}
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
inline T length(void) const {
|
inline T length(void) const {
|
||||||
return MathUtil::sqrt(x * x + y * y + z * z);
|
return MathUtil::sqrt(x * x + y * y + z * z);
|
||||||
|
|||||||
@@ -210,14 +210,6 @@ public:
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool operator < (const TVector4& rhs) const {
|
|
||||||
return (x < rhs.x && y < rhs.y && z < rhs.z && w < rhs.w);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline bool operator > (const TVector4& rhs) const {
|
|
||||||
return (x > rhs.x && y > rhs.y && z > rhs.z && w > rhs.w);
|
|
||||||
}
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
inline T dotProduct(const TVector4& vec) const {
|
inline T dotProduct(const TVector4& vec) const {
|
||||||
|
|||||||
@@ -75,6 +75,36 @@ TEST(Math_Vector2, Basic)
|
|||||||
EXPECT_TRUE(v1 != v2);
|
EXPECT_TRUE(v1 != v2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
fVector2 v1(TWO_RANDOM_FLOAT), v2(v1);
|
||||||
|
|
||||||
|
EXPECT_FALSE(v2 > v1);
|
||||||
|
EXPECT_FALSE(v1 > v2);
|
||||||
|
EXPECT_FALSE(v2 < v1);
|
||||||
|
EXPECT_FALSE(v1 < v2);
|
||||||
|
|
||||||
|
v2.y += 1.f;
|
||||||
|
EXPECT_GT(v2, v1);
|
||||||
|
EXPECT_LT(v1, v2);
|
||||||
|
|
||||||
|
v2 = v1;
|
||||||
|
v2.x += 1.f;
|
||||||
|
EXPECT_GT(v2, v1);
|
||||||
|
EXPECT_LT(v1, v2);
|
||||||
|
|
||||||
|
v2 = v1;
|
||||||
|
v2.x += 1.f;
|
||||||
|
v2.y += 1.f;
|
||||||
|
EXPECT_GT(v2, v1);
|
||||||
|
EXPECT_LT(v1, v2);
|
||||||
|
|
||||||
|
v2 = v1;
|
||||||
|
v2.x += 1.f;
|
||||||
|
v2.y -= 1.f;
|
||||||
|
EXPECT_LT(v2, v1);
|
||||||
|
EXPECT_GT(v1, v2);
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
float a = 0.f;
|
float a = 0.f;
|
||||||
while (a == 0.f) { a = _randomFloat(); }
|
while (a == 0.f) { a = _randomFloat(); }
|
||||||
@@ -190,16 +220,6 @@ TEST(Math_Vector2, Basic)
|
|||||||
v3 /= a;
|
v3 /= a;
|
||||||
EXPECT_TRUE(v3 == v1 / a);
|
EXPECT_TRUE(v3 == v1 / a);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
|
||||||
fVector2 v1(TWO_RANDOM_FLOAT), v2(v1);
|
|
||||||
|
|
||||||
v2 += 1.f;
|
|
||||||
EXPECT_TRUE(v2 > v1);
|
|
||||||
|
|
||||||
v2 -= 2.f;
|
|
||||||
EXPECT_TRUE(v2 < v1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -238,16 +238,6 @@ TEST(Math_Vector3, Basic)
|
|||||||
v3 /= a;
|
v3 /= a;
|
||||||
EXPECT_TRUE(v3 == v1 / a);
|
EXPECT_TRUE(v3 == v1 / a);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
|
||||||
fVector3 v1(THREE_RANDOM_FLOAT), v2(v1);
|
|
||||||
|
|
||||||
v2 += 1.f;
|
|
||||||
EXPECT_TRUE(v2 > v1);
|
|
||||||
|
|
||||||
v2 -= 2.f;
|
|
||||||
EXPECT_TRUE(v2 < v1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -234,16 +234,6 @@ TEST(Math_Vector4, Basic)
|
|||||||
v3 /= a;
|
v3 /= a;
|
||||||
EXPECT_TRUE(v3 == v1 / a);
|
EXPECT_TRUE(v3 == v1 / a);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
|
||||||
fVector4 v1(FOUR_RANDOM_FLOAT), v2(v1);
|
|
||||||
|
|
||||||
v2 += 1.f;
|
|
||||||
EXPECT_TRUE(v2 > v1);
|
|
||||||
|
|
||||||
v2 -= 2.f;
|
|
||||||
EXPECT_TRUE(v2 < v1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user