MIRA
|
Base class template for derived Angle implementations. More...
#include <math/Angle.h>
Public Member Functions | |
template<typename Reflector > | |
void | reflect (Reflector &r) |
void | setValue (const T &value) |
Set the angle value. The input value is mapped into the angle interval. More... | |
const T & | value () const |
Returns the raw angle value given in the native unit of the angle class. More... | |
operator T () const | |
Conversion function to native type (same as value() ) More... | |
void | setSerializedValue (const T &value) |
Sets the value in the unit that is used for serialization. More... | |
T | serializedValue () const |
Returns the value in the unit that is used for serialization. More... | |
T | deg () const |
Returns the value of the angle in degrees. More... | |
T | rad () const |
Returns the value of the angle in radian. More... | |
Derived | operator- () const |
Unary minus operator. More... | |
template<typename OtherUnitTag , typename OtherDerived > | |
Derived | operator+= (const AngleBase< T, OtherUnitTag, OtherDerived > &a) |
Add other angle to this angle. More... | |
Derived & | operator+= (const T &a) |
Add float value to this angle. More... | |
template<typename OtherUnitTag , typename OtherDerived > | |
Derived | operator-= (const AngleBase< T, OtherUnitTag, OtherDerived > &a) |
Subtract other angle from this angle. More... | |
Derived & | operator-= (const T &a) |
Subtract float value from this angle. More... | |
Derived & | operator*= (const T &s) |
Multiply this angle with scalar. More... | |
Derived & | operator/= (const T &s) |
Divide this angle by scalar. More... | |
T | smallestDifferenceValue (const Derived &other) const |
Returns the signed difference angle between this angle and the specified other angle that has the smallest absolute value. More... | |
bool | isInInterval (const Derived &min, const Derived &max) const |
Returns true, if the angle is in the given interval [min,max]. More... | |
Static Public Member Functions | |
static T | upper () |
Returns the upper limit of the defined angle interval. More... | |
static const char * | unit () |
Returns the unit of this angle representation as string, e.g. More... | |
Protected Member Functions | |
AngleBase (T value, int) | |
AngleBase () | |
AngleBase (T value) | |
AngleBase (const AngleBase &other) | |
template<typename OtherT , typename OtherUnitTag , typename OtherDerived > | |
AngleBase (const AngleBase< OtherT, OtherUnitTag, OtherDerived > &other) | |
template<typename OtherUnitTag , typename OtherDerived > | |
void | operator= (const AngleBase< T, OtherUnitTag, OtherDerived > &other) |
void | operator= (const T &other) |
Protected Attributes | |
T | mValue |
the actual value More... | |
Friends | |
template<typename OtherUnitTag , typename OtherDerived > | |
Derived | operator+ (const Derived &a, const AngleBase< T, OtherUnitTag, OtherDerived > &b) |
Add two angles. More... | |
Derived | operator+ (const AngleBase &a, const T &b) |
Add two angles. More... | |
Derived | operator+ (const T &a, const AngleBase &b) |
Add two angles. More... | |
template<typename OtherUnitTag , typename OtherDerived > | |
Derived | operator- (const Derived &a, const AngleBase< T, OtherUnitTag, OtherDerived > &b) |
Subtract two angles. More... | |
Derived | operator- (const AngleBase &a, const T &b) |
Subtract two angles. More... | |
Derived | operator- (const T &a, const AngleBase &b) |
Subtract two angles. More... | |
Derived | operator* (const Derived &a, const T &b) |
Multiply with scalar. More... | |
Derived | operator* (const T &a, const Derived &b) |
Multiply with scalar. More... | |
Derived | operator/ (const Derived &a, const T &b) |
Divide by scalar. More... | |
bool | operator< (const AngleBase &a, const AngleBase &b) |
bool | operator<= (const AngleBase &a, const AngleBase &b) |
bool | operator> (const AngleBase &a, const AngleBase &b) |
bool | operator>= (const AngleBase &a, const AngleBase &b) |
bool | operator== (const AngleBase &a, const AngleBase &b) |
bool | operator!= (const AngleBase &a, const AngleBase &b) |
std::ostream & | operator<< (std::ostream &o, const AngleBase &v) |
stream operator More... | |
Base class template for derived Angle implementations.
Contains major parts of the implementation of the angle classes. Uses curiously recurring template pattern (CRTP) for static polymorphism.
|
inlineprotected |
|
inlineprotected |
|
inlineexplicitprotected |
|
inlineprotected |
|
inlineprotected |
|
inline |
|
inlinestatic |
Returns the upper limit of the defined angle interval.
Note, that the upper limit does not belong to the interval itself, hence the interval is [lower,upper) .
|
inline |
Set the angle value. The input value is mapped into the angle interval.
|
inline |
Returns the raw angle value given in the native unit of the angle class.
|
inlineexplicit |
Conversion function to native type (same as value() )
Implicit conversion is intentionally disabled, in order to prevent potentially erroneous usage like
|
inline |
Sets the value in the unit that is used for serialization.
The Angle and SignedAngle classes use radians for storing the value internal and degrees for serializing the value to simplify the usage for the human user. For the other classes Degree, SignedDegree, Radian and SignedRadian setValue() and setSerializedValue() are doing the same.
|
inline |
Returns the value in the unit that is used for serialization.
The Angle and SignedAngle classes use radians for storing the value internal and degrees for serializing the value to simplify the usage for the human user. For the other classes Degree, SignedDegree, Radian and SignedRadian value() and serializedValue() yield the same result.
|
inline |
Returns the value of the angle in degrees.
|
inline |
Returns the value of the angle in radian.
|
inline |
Unary minus operator.
|
inline |
Add other angle to this angle.
|
inline |
Add float value to this angle.
|
inline |
Subtract other angle from this angle.
|
inline |
Subtract float value from this angle.
|
inline |
Multiply this angle with scalar.
|
inline |
Divide this angle by scalar.
|
inline |
Returns the signed difference angle between this angle and the specified other angle that has the smallest absolute value.
This method is similar to smallestDifference() but returns a floating point value instead of a signed angle class object.
|
inline |
Returns true, if the angle is in the given interval [min,max].
If max<min, both values will be swapped.
|
inlinestatic |
Returns the unit of this angle representation as string, e.g.
"rad" or "deg"
|
friend |
Add two angles.
|
friend |
Add two angles.
|
friend |
Add two angles.
|
friend |
Subtract two angles.
|
friend |
Subtract two angles.
|
friend |
Subtract two angles.
|
friend |
Multiply with scalar.
|
friend |
Multiply with scalar.
|
friend |
Divide by scalar.
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
stream operator
|
protected |
the actual value