Loading...
Searching...
No Matches
BALL::TAngle< T > Class Template Reference

`#include <BALL/MATHS/angle.h>`

## Public Types

Enums
enum | Range { RANGE__UNLIMITED = 0 , RANGE__UNSIGNED = 1 , RANGE__SIGNED = 2 }

## Public Member Functions

Constructors and Destructors
| TAngle ()
| TAngle (const TAngle &angle)
| TAngle (const T &new_value, bool radian=true)
virtual | ~TAngle ()
virtual void | clear ()
Assignment
void | swap (TAngle &angle)
void | set (const T &new_value, bool radian=true)
void | set (const TAngle &angle)
TAngle & | operator= (const TAngle &angle)
TAngle & | operator= (const T &new_value)
void | get (TAngle &angle) const
void | get (T &val, bool radian=true) const
Predicates
bool | operator== (const TAngle &angle) const
bool | operator!= (const TAngle &angle) const
bool | operator< (const TAngle &angle) const
bool | operator< (const T &val) const
bool | operator<= (const TAngle &angle) const
bool | operator>= (const TAngle &angle) const
bool | operator> (const TAngle &angle) const
bool | isEquivalent (TAngle angle) const
Debugging and Diagnostics
bool | isValid () const
void | dump (std::ostream &s=std::cout, Size depth=0) const

## Public Attributes

Attributes
T | value

## Accessors

| operator T () const
T | toRadian () const
T | toDegree () const
void | normalize (Range range)
void | negate ()
TAngle | operator+ () const
TAngle | operator- () const
TAngle & | operator+= (const TAngle &angle)
TAngle & | operator+= (const T &val)
TAngle | operator+ (const TAngle &angle)
TAngle & | operator-= (const TAngle &angle)
TAngle & | operator-= (const T &val)
TAngle | operator- (const TAngle &angle)
TAngle & | operator*= (const TAngle &angle)
TAngle & | operator*= (const T &val)
TAngle & | operator/= (const TAngle &angle)
TAngle & | operator/= (const T &val)
TAngle | operator/ (const TAngle &val)
static T | toRadian (const T &degree)
static T | toDegree (const T &radian)

## Detailed Description

template<typename T>
class BALL::TAngle< T >

Generic Angle Class. Use this class to describe angles. The TAngle class permits the conversion from degree to radians and is the return type of all functions used to calculate angles.

Definition at line 52 of file angle.h.

## Member Enumeration Documentation

## Range

template<typename T>

enum BALL::TAngle::Range

form of the angle range: RANGE__UNLIMITED = 0 no limitations RANGE__UNSIGNED = 1 0 <= angle <= 360, 0 <= angle <= PI * 2 RANGE__SIGNED = 2 -180 <= angle <= 180, -PI <= angle <= PI

Enumerator
RANGE__UNLIMITED |
RANGE__UNSIGNED |
RANGE__SIGNED |

Definition at line 67 of file angle.h.

## Constructor & Destructor Documentation

## TAngle() [1/3]

template<typename T>

BALL::TAngle< T >::TAngle | ( |  | ) |

Default constructor. Creates a new angle object. Its value is set to 0.

Definition at line 384 of file angle.h.

## TAngle() [2/3]

template<typename T>

BALL::TAngle< T >::TAngle | ( | const TAngle< T > & | angle | ) |

Copy constructor. Create a copy of a TAngle object. Copies are always shallow.

Parameters

  angle | the object to be copied

Definition at line 390 of file angle.h.

## TAngle() [3/3]

template<typename T>

BALL::TAngle< T >::TAngle | ( | const T & | new_value,
|  | bool | radian = true )

explicit

Detailed constructor. Create a new angle object and set its value to new_value. radian determines whether new_value is in radians or in degrees.

Parameters

  new_value | the value of the angle object
  radian | true if new_value is in radians, false otherwise

Definition at line 396 of file angle.h.

## ~TAngle()

template<typename T>

virtual BALL::TAngle< T >::~TAngle | ( |  | ) |

inline virtual

Destructor.

Definition at line 104 of file angle.h.

## Member Function Documentation

## clear()

template<typename T>

virtual void BALL::TAngle< T >::clear | ( |  | ) |

inline virtual

Clear method The value is set to 0.

Definition at line 111 of file angle.h.

## dump()

template<typename T>

void BALL::TAngle< T >::dump | ( | std::ostream & | s = std::cout,
|  | Size | depth = 0 ) const

Internal state dump. Dump the current internal state of {*this} to the output ostream s with dumping depth depth .

Parameters

  s | - output stream where to output the internal state of {*this}
  depth | - the dumping depth

Definition at line 681 of file angle.h.

## get() [1/2]

template<typename T>

void BALL::TAngle< T >::get | ( | T & | val,
|  | bool | radian = true ) const

Assign the value to a variable of type T.

Parameters

  val | the variable to assign the value to
  radian | if set to true assigns the value in radians (default).

Definition at line 442 of file angle.h.

## get() [2/2]

template<typename T>

void BALL::TAngle< T >::get | ( | TAngle< T > & | angle | ) | const

Assign the value to another angle.

Parameters

  angle | the angle to assign the value to

Definition at line 436 of file angle.h.

## isEquivalent()

template<typename T>

bool BALL::TAngle< T >::isEquivalent | ( | TAngle< T > | angle | ) | const

Test whether two angles are equivalent. Both angles are normalized and afterwards compared with Maths::isEqual instead of comparing the values directly.

Parameters

  angle | the angle to compare with

Returns
  bool, true if {*this} angle is equal to value

Definition at line 664 of file angle.h.

## isValid()

template<typename T>

bool BALL::TAngle< T >::isValid | ( |  | ) | const

Test whether instance is valid. Always returns true

Returns
  bool true

Definition at line 675 of file angle.h.

## negate()

template<typename T>

void BALL::TAngle< T >::negate | ( |  | ) |

Negate the angle

Definition at line 513 of file angle.h.

## normalize()

template<typename T>

void BALL::TAngle< T >::normalize | ( | Range | range | ) |

Normalize the angle over a given range. RANGE__UNLIMITED = 0 no limitations. RANGE__UNSIGNED = 1 . RANGE__SIGNED = 2 .

Parameters

  range | the range of the angle

Definition at line 478 of file angle.h.

## operator T()

template<typename T>

BALL::TAngle< T >::operator T | ( |  | ) | const

Cast operator

Returns
  value in radians

Definition at line 448 of file angle.h.

## operator!=()

template<typename T>

bool BALL::TAngle< T >::operator!= | ( | const TAngle< T > & | angle | ) | const

Inequality operator This test uses Maths::isNotEqual instead of comparing the values directly.

Parameters

  angle | the angle to compare with

Returns
  bool, true if the two angles are not equal

Definition at line 627 of file angle.h.

## operator*=() [1/2]

template<typename T>

TAngle< T > & BALL::TAngle< T >::operator*= | ( | const T & | val | ) |

Multiply a value with this angle.

Parameters

  val | the value to multiply by

Returns
  TAngle, {*this}

Definition at line 578 of file angle.h.

## operator*=() [2/2]

template<typename T>

TAngle< T > & BALL::TAngle< T >::operator*= | ( | const TAngle< T > & | angle | ) |

Multiply an angle with this angle.

Parameters

  angle | the angle to multiply by

Returns
  TAngle, {*this}

Definition at line 571 of file angle.h.

## operator+() [1/2]

template<typename T>

TAngle< T > BALL::TAngle< T >::operator+ | ( |  | ) | const

Positive sign.

Definition at line 519 of file angle.h.

## operator+() [2/2]

template<typename T>

TAngle< T > BALL::TAngle< T >::operator+ | ( | const TAngle< T > & | angle | ) |

Addition operator.

Parameters

  angle | the angle to add

Returns
  TAngle, the new angle

Definition at line 545 of file angle.h.

## operator+=() [1/2]

template<typename T>

TAngle< T > & BALL::TAngle< T >::operator+= | ( | const T & | val | ) |

Add a value to this angle.

Parameters

  val | the value to add

Returns
  TAngle, {*this}

Definition at line 538 of file angle.h.

## operator+=() [2/2]

template<typename T>

TAngle< T > & BALL::TAngle< T >::operator+= | ( | const TAngle< T > & | angle | ) |

Addition operator.

Parameters

  angle | the angle to add

Returns
  TAngle, {*this}

Definition at line 531 of file angle.h.

## operator-() [1/2]

template<typename T>

TAngle< T > BALL::TAngle< T >::operator- | ( |  | ) | const

Negative sign.

Definition at line 525 of file angle.h.

## operator-() [2/2]

template<typename T>

TAngle< T > BALL::TAngle< T >::operator- | ( | const TAngle< T > & | angle | ) |

Subtraction an angle from this angle.

Parameters

  angle | the angle to substract

Returns
  TAngle, the new angle

Definition at line 565 of file angle.h.

## operator-=() [1/2]

template<typename T>

TAngle< T > & BALL::TAngle< T >::operator-= | ( | const T & | val | ) |

Substract a value from this angle.

Parameters

  val | the value to substract

Returns
  TAngle, {*this}

Definition at line 558 of file angle.h.

## operator-=() [2/2]

template<typename T>

TAngle< T > & BALL::TAngle< T >::operator-= | ( | const TAngle< T > & | angle | ) |

Substraction operator.

Parameters

  angle | the angle to substract

Returns
  TAngle, {*this}

Definition at line 551 of file angle.h.

## operator/()

template<typename T>

TAngle< T > BALL::TAngle< T >::operator/ | ( | const TAngle< T > & | val | ) |

Divide this angle by a value.

Parameters

  val | the angle to divide by

Returns
  TAngle, the new angle

Exceptions

  Exception::DivisionByZero | if val is zero

Definition at line 610 of file angle.h.

## operator/=() [1/2]

template<typename T>

TAngle< T > & BALL::TAngle< T >::operator/= | ( | const T & | val | ) |

Divide this angle by a value.

Parameters

  val | the angle to divide by

Returns
  TAngle, {*this}

Exceptions

  Exception::DivisionByZero | if val is zero

Definition at line 597 of file angle.h.

## operator/=() [2/2]

template<typename T>

TAngle< T > & BALL::TAngle< T >::operator/= | ( | const TAngle< T > & | angle | ) |

Division operator.

Parameters

  angle | the angle to divide by

Returns
  TAngle, {*this}

Exceptions

  Exception::DivisionByZero | if angle is zero

Definition at line 585 of file angle.h.

## operator<() [1/2]

template<typename T>

bool BALL::TAngle< T >::operator< | ( | const T & | val | ) | const

Is less operator. This test uses Maths::isLess instead of comparing the values directly.

Parameters

  val | the value to compare with

Returns
  bool, true if {*this} angle is smaller than value

Definition at line 639 of file angle.h.

## operator<() [2/2]

template<typename T>

bool BALL::TAngle< T >::operator< | ( | const TAngle< T > & | angle | ) | const

Is less operator. This test uses Maths::isLess instead of comparing the values directly.

Parameters

  angle | the angle to compare with

Returns
  bool, true if {*this} angle is smaller than value

Definition at line 633 of file angle.h.

## operator<=()

template<typename T>

bool BALL::TAngle< T >::operator<= | ( | const TAngle< T > & | angle | ) | const

Is less or equal operator. This test uses Maths::isLessOrEqual instead of comparing the values directly.

Parameters

  angle | the angle to compare with

Returns
  bool, true if {*this} angle is smaller or equal than value

Definition at line 645 of file angle.h.

## operator=() [1/2]

template<typename T>

TAngle< T > & BALL::TAngle< T >::operator= | ( | const T & | new_value | ) |

Assignment operator for floats. Assign a float value to the angle. The assigned value has to be in radians!

Parameters

  new_value | the new value

Definition at line 429 of file angle.h.

## operator=() [2/2]

template<typename T>

TAngle< T > & BALL::TAngle< T >::operator= | ( | const TAngle< T > & | angle | ) |

Assignment operator

Definition at line 422 of file angle.h.

## operator==()

template<typename T>

bool BALL::TAngle< T >::operator== | ( | const TAngle< T > & | angle | ) | const

Equality operator. This test uses Maths::isEqual instead of comparing the values directly.

Parameters

  angle | the angle to compare with

Returns
  bool, true if the two angles are equal

Definition at line 621 of file angle.h.

## operator>()

template<typename T>

bool BALL::TAngle< T >::operator> | ( | const TAngle< T > & | angle | ) | const

Is greater operator. This test uses Maths::isGreater instead of comparing the values directly.

Parameters

  angle | the angle to compare with

Returns
  bool, true if {*this} angle is greater than value

Definition at line 657 of file angle.h.

## operator>=()

template<typename T>

bool BALL::TAngle< T >::operator>= | ( | const TAngle< T > & | angle | ) | const

Is greater or equal operator. This test uses Maths::isGreaterOrEqual instead of comparing the values directly.

Parameters

  angle | the angle to compare with

Returns
  bool, true if {*this} angle is greater or equal than value

Definition at line 651 of file angle.h.

## set() [1/2]

template<typename T>

void BALL::TAngle< T >::set | ( | const T & | new_value,
|  | bool | radian = true )

Assign a new value to the angle. radian determines whether new_value is in radians or in degrees.

Parameters

  new_value | the value of the angle object
  radian | true if new_value is in radians, false otherwise

Definition at line 416 of file angle.h.

## set() [2/2]

template<typename T>

void BALL::TAngle< T >::set | ( | const TAngle< T > & | angle | ) |

Assign an Angle object from another.

Parameters

  angle | the angle object to be assigned from

Definition at line 410 of file angle.h.

## swap()

template<typename T>

void BALL::TAngle< T >::swap | ( | TAngle< T > & | angle | ) |

Swap the contents of two angles.

Definition at line 402 of file angle.h.

## toDegree() [1/2]

template<typename T>

T BALL::TAngle< T >::toDegree | ( |  | ) | const

Return the value of the angle

Returns
  value in degrees

Definition at line 465 of file angle.h.

## toDegree() [2/2]

template<typename T>

T BALL::TAngle< T >::toDegree | ( | const T & | radian | ) |

static

Calculate degrees from radians

Parameters

  radian | the value in radians

Returns
  T the value in degrees

Definition at line 471 of file angle.h.

## toRadian() [1/2]

template<typename T>

T BALL::TAngle< T >::toRadian | ( |  | ) | const

Return the value of the angle

Returns
  value in radians

Definition at line 454 of file angle.h.

## toRadian() [2/2]

template<typename T>

T BALL::TAngle< T >::toRadian | ( | const T & | degree | ) |

static

Calculate radians from degrees

Parameters

  degree | the value in degrees

Returns
  T the value in radians

Definition at line 460 of file angle.h.

## Member Data Documentation

## value

template<typename T>

T BALL::TAngle< T >::value

The value

Definition at line 377 of file angle.h.