Added Angle comparison
This commit is contained in:
parent
6b3bcfc391
commit
6a1d0434cf
26
Angle.cpp
26
Angle.cpp
@ -96,9 +96,29 @@ float AngleOf<float>::ToFloat() const {
|
|||||||
// template <>
|
// template <>
|
||||||
// AngleOf<float> AngleOf<float>::Deg2Rad = (pi * 2) / 360.0f;
|
// AngleOf<float> AngleOf<float>::Deg2Rad = (pi * 2) / 360.0f;
|
||||||
|
|
||||||
template <>
|
template <typename T>
|
||||||
bool AngleOf<float>::operator==(AngleOf<float> a) {
|
bool AngleOf<T>::operator==(AngleOf<T> a) {
|
||||||
return this->ToFloat() == a.ToFloat();
|
return this->value == a.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
bool AngleOf<T>::operator>(AngleOf<T> a) {
|
||||||
|
return this->value > a.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
bool AngleOf<T>::operator>=(AngleOf<T> a) {
|
||||||
|
return this->value >= a.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
bool AngleOf<T>::operator<(AngleOf<T> a) {
|
||||||
|
return this->value < a.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
bool AngleOf<T>::operator<=(AngleOf<T> a) {
|
||||||
|
return this->value <= a.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
|
7
Angle.h
7
Angle.h
@ -28,6 +28,10 @@ class AngleOf {
|
|||||||
static AngleOf<T> pi;
|
static AngleOf<T> pi;
|
||||||
|
|
||||||
bool operator==(AngleOf<T> a);
|
bool operator==(AngleOf<T> a);
|
||||||
|
bool operator>(AngleOf<T> a);
|
||||||
|
bool operator>=(AngleOf<T> a);
|
||||||
|
bool operator<(AngleOf<T> a);
|
||||||
|
bool operator<=(AngleOf<T> a);
|
||||||
|
|
||||||
AngleOf<T> operator-() const;
|
AngleOf<T> operator-() const;
|
||||||
AngleOf<T> operator-(const AngleOf<T>& a) const;
|
AngleOf<T> operator-(const AngleOf<T>& a) const;
|
||||||
@ -61,7 +65,8 @@ class AngleOf {
|
|||||||
};
|
};
|
||||||
|
|
||||||
using Angle = AngleOf<float>;
|
using Angle = AngleOf<float>;
|
||||||
// using Angle = AngleOf<signed short>;
|
using AngleSingle = AngleOf<float>;
|
||||||
|
using Angle16 = AngleOf<signed short>;
|
||||||
|
|
||||||
} // namespace LinearAlgebra
|
} // namespace LinearAlgebra
|
||||||
} // namespace Passer
|
} // namespace Passer
|
||||||
|
@ -8,6 +8,34 @@
|
|||||||
|
|
||||||
#define FLOAT_INFINITY std::numeric_limits<float>::infinity()
|
#define FLOAT_INFINITY std::numeric_limits<float>::infinity()
|
||||||
|
|
||||||
|
TEST(Angle16, Compare) {
|
||||||
|
Angle16 a = Angle16(45);
|
||||||
|
bool r = false;
|
||||||
|
|
||||||
|
r = a > Angle16(0);
|
||||||
|
EXPECT_TRUE(r) << "45 > 0";
|
||||||
|
|
||||||
|
r = a > Angle16(90);
|
||||||
|
EXPECT_FALSE(r) << "45 > 90";
|
||||||
|
|
||||||
|
r = a > Angle16(-90);
|
||||||
|
EXPECT_TRUE(r) << "45 > -90";
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(AngleSingle, Compare) {
|
||||||
|
AngleSingle a = AngleSingle(45);
|
||||||
|
bool r = false;
|
||||||
|
|
||||||
|
r = a > AngleSingle(0);
|
||||||
|
EXPECT_TRUE(r) << "45 > 0";
|
||||||
|
|
||||||
|
r = a > AngleSingle(90);
|
||||||
|
EXPECT_FALSE(r) << "45 > 90";
|
||||||
|
|
||||||
|
r = a > AngleSingle(-90);
|
||||||
|
EXPECT_TRUE(r) << "45 > -90";
|
||||||
|
}
|
||||||
|
|
||||||
TEST(Angle, Normalize) {
|
TEST(Angle, Normalize) {
|
||||||
Angle r = 0;
|
Angle r = 0;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user