- binaryangle.h: Change binangle bitshift operators to operate on signed value to properly handle angles > 1024.

This commit is contained in:
Mitch Richters 2021-11-01 22:13:39 +11:00
parent a1570c185f
commit eb8b075727
4 changed files with 9 additions and 9 deletions

View file

@ -183,24 +183,24 @@ public:
constexpr binangle &operator<<= (const uint8_t shift)
{
value <<= shift;
value = tosigned() << shift;
return *this;
}
constexpr binangle &operator>>= (const uint8_t shift)
{
value >>= shift;
value = tosigned() >> shift;
return *this;
}
constexpr binangle operator<< (const uint8_t shift) const
{
return binangle(value << shift);
return binangle(tosigned() << shift);
}
constexpr binangle operator>> (const uint8_t shift) const
{
return binangle(value >> shift);
return binangle(tosigned() >> shift);
}
};