RoboidControl-cpp/DiscreteAngle.h
2024-03-15 09:27:23 +01:00

36 lines
759 B
C++

#ifndef DISCRETEANGLE_H
#define DISCRETEANGLE_H
#include "Range.h"
// A fixed angle between (-180..180]
template <typename T> class AngleUsing {
public:
AngleUsing(T sourceValue);
float ToFloat() const;
inline T GetValue() const { return this->value; }
inline AngleUsing<T> operator+(const AngleUsing<T> a) {
return this->value + a.value;
}
inline AngleUsing<T> operator+=(const AngleUsing<T> a &) {
return this->value + a.value;
}
inline AngleUsing<T> operator-(const AngleUsing<T> a) {
return this->value - a.value;
}
inline AngleUsing<T> operator-() { return -this->value; }
inline bool operator==(const AngleUsing<T> a, const AngleUsing<T> b) {
return a.value == b.value;
}
protected:
T value;
};
#endif