#ifndef RANGE_H #define RANGE_H namespace Passer { namespace LinearAlgebra { /* /// @brief Signed range. May be renamed to SignedRange later class Range16 { public: Range16(); Range16(float range); // range -1..1 Range16(short range); // range -32768..32767 inline Range16 operator-(Range16 a); inline Range16 operator+(Range16 a); inline virtual Range16 &operator-(); inline bool operator==(Range16 a); inline bool operator!=(Range16 a); inline bool operator<(Range16 a); inline bool operator>(Range16 a); inline bool operator<=(Range16 a); inline bool operator>=(Range16 a); protected: // How do we make sure we have 16 bit range on every platform? // uint16_t range; // 16-bit range unsigned short range; // 16-bit range }; */ template class RangeUsing { public: RangeUsing(float range); // range -1..1 inline RangeUsing operator-(RangeUsing a) { this->value - a.value; } inline RangeUsing operator+(RangeUsing a) { this->value + a.value; } inline RangeUsing operator-() { this->value = -this.value; } inline T GetValue() { return value; } T value; }; } // namespace LinearAlgebra } // namespace Passer using namespace Passer::LinearAlgebra; #endif