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 <>
|
||||
// AngleOf<float> AngleOf<float>::Deg2Rad = (pi * 2) / 360.0f;
|
||||
|
||||
template <>
|
||||
bool AngleOf<float>::operator==(AngleOf<float> a) {
|
||||
return this->ToFloat() == a.ToFloat();
|
||||
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 <typename T>
|
||||
bool AngleOf<T>::operator<=(AngleOf<T> a) {
|
||||
return this->value <= a.value;
|
||||
}
|
||||
|
||||
template <>
|
||||
|
7
Angle.h
7
Angle.h
@ -28,6 +28,10 @@ class AngleOf {
|
||||
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);
|
||||
|
||||
AngleOf<T> operator-() const;
|
||||
AngleOf<T> operator-(const AngleOf<T>& a) const;
|
||||
@ -61,7 +65,8 @@ class AngleOf {
|
||||
};
|
||||
|
||||
using Angle = AngleOf<float>;
|
||||
// using Angle = AngleOf<signed short>;
|
||||
using AngleSingle = AngleOf<float>;
|
||||
using Angle16 = AngleOf<signed short>;
|
||||
|
||||
} // namespace LinearAlgebra
|
||||
} // namespace Passer
|
||||
|
@ -8,6 +8,34 @@
|
||||
|
||||
#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) {
|
||||
Angle r = 0;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user