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