#ifndef RANGE_H #define RANGE_H /// @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 }; #endif