47 lines
1.1 KiB
C++
47 lines
1.1 KiB
C++
#ifndef RANGE_H
|
|
#define RANGE_H
|
|
|
|
namespace Passer {
|
|
|
|
/*
|
|
/// @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 <typename T> class RangeUsing {
|
|
public:
|
|
RangeUsing<T>(float range); // range -1..1
|
|
|
|
inline RangeUsing<T> operator-(RangeUsing<T> a) { this->value - a.value; }
|
|
inline RangeUsing<T> operator+(RangeUsing<T> a) { this->value + a.value; }
|
|
inline RangeUsing<T> operator-() { this->value = -this.value; }
|
|
inline T GetValue() { return value; }
|
|
|
|
T value;
|
|
};
|
|
} // namespace Passer
|
|
using namespace Passer;
|
|
|
|
#endif |