BALL::TAngle< T > Class Template Reference
[Representation of angles.]

Generic Angle Class. More...

#include <angle.h>

Inheritance diagram for BALL::TAngle< T >:
Inheritance graph
[legend]

List of all members.


Public Types

Enums
enum Range { RANGE__UNLIMITED = 0, RANGE__UNSIGNED = 1, RANGE__SIGNED = 2 }
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

Public Member Functions

Constructors and Destructors
TAngle ()
Default constructor.
TAngle (const TAngle &angle)
Copy constructor.
TAngle (const T &new_value, bool radian=true)
Detailed constructor.
virtual ~TAngle ()
Destructor.
virtual void clear ()
Clear method The value is set to 0.
Assignment
void swap (TAngle &angle)
Swap the contents of two angles.
void set (const T &new_value, bool radian=true)
Assign a new value to the angle.
void set (const TAngle &angle)
Assign an Angle object from another.
TAngle & operator= (const TAngle &angle)
Assignment operator.
TAngle & operator= (const T &new_value)
Assignment operator for floats.
void get (TAngle &angle) const
Assign the value to another angle.
void get (T &val, bool radian=true) const
Assign the value to a variable of type T.
Predicates
bool operator== (const TAngle &angle) const
Equality operator.
bool operator!= (const TAngle &angle) const
Inequality operator This test uses Maths::isNotEqual instead of comparing the values directly.
bool operator< (const TAngle &angle) const
Is less operator.
bool operator< (const T &val) const
Is less operator.
bool operator<= (const TAngle &angle) const
Is less or equal operator.
bool operator>= (const TAngle &angle) const
Is greater or equal operator.
bool operator> (const TAngle &angle) const
Is greater operator.
bool isEquivalent (TAngle angle) const
Test whether two angles are equivalent.
Debugging and Diagnostics
bool isValid () const
Test whether instance is valid.
void dump (std::ostream &s=std::cout, Size depth=0) const
Internal state dump.

Public Attributes

Attributes
T value
The value.

Accessors

operator T () const
Cast operator.
T toRadian () const
Return the value of the angle.
T toDegree () const
Return the value of the angle.
void normalize (Range range)
Normalize the angle over a given range.
void negate ()
Negate the angle.
TAngle operator+ () const
Positive sign.
TAngle operator- () const
Negative sign.
TAngle & operator+= (const TAngle &angle)
Addition operator.
TAngle & operator+= (const T &val)
Add a value to this angle.
TAngle operator+ (const TAngle &angle)
Addition operator.
TAngle & operator-= (const TAngle &angle)
Substraction operator.
TAngle & operator-= (const T &val)
Substract a value from this angle.
TAngle operator- (const TAngle &angle)
Subtraction an angle from this angle.
TAngle & operator*= (const TAngle &angle)
Multiply an angle with this angle.
TAngle & operator*= (const T &val)
Multiply a value with this angle.
TAngle & operator/= (const TAngle &angle) throw (Exception::DivisionByZero)
Division operator.
TAngle & operator/= (const T &val) throw (Exception::DivisionByZero)
Divide this angle by a value.
TAngle operator/ (const TAngle &val) throw (Exception::DivisionByZero)
Divide this angle by a value.
static T toRadian (const T &degree)
Calculate radians from degrees.
static T toDegree (const T &radian)
Calculate degrees from radians.

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.


Constructor & Destructor Documentation

template<typename T >
BALL::TAngle< T >::TAngle ( )

Default constructor.

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

Referenced by BALL::TAngle< T >::operator+(), and BALL::TAngle< T >::operator-().

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

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

Member Function Documentation

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

References BALL::TAngle< T >::value.

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).

References BALL::TAngle< T >::value.

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

References BALL::TAngle< T >::value.

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

References BALL::TAngle< T >::normalize().

template<typename T >
bool BALL::TAngle< T >::isValid ( ) const

Test whether instance is valid.

Always returns true

Returns:
bool true

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 $0 \le \mathtt{angle} \le 360, 0 \le angle \le 2 \pi$. RANGE__SIGNED = 2 $-180 \le \mathtt{angle} \le 180, -\pi \le \mathtt{angle} \le \pi$.

Parameters:
range the range of the angle

References BALL::Maths::isGreater(), BALL::Maths::isLess(), BALL::Constants::PI, and BALL::TAngle< T >::value.

Referenced by BALL::TAngle< T >::isEquivalent().

template<typename T >
BALL::TAngle< T >::operator T ( ) const

Cast operator.

Returns:
value in radians

References BALL::TAngle< T >::value.

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

References BALL::Maths::isNotEqual(), and BALL::TAngle< T >::value.

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}

References BALL::TAngle< T >::value.

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}

References BALL::TAngle< T >::value.

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

References BALL::TAngle< T >::TAngle(), and BALL::TAngle< T >::value.

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}

References BALL::TAngle< T >::value.

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

Addition operator.

Parameters:
angle the angle to add
Returns:
TAngle, {*this}

References BALL::TAngle< T >::value.

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

References BALL::TAngle< T >::TAngle(), and BALL::TAngle< T >::value.

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}

References BALL::TAngle< T >::value.

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

Substraction operator.

Parameters:
angle the angle to substract
Returns:
TAngle, {*this}

References BALL::TAngle< T >::value.

template<typename T >
TAngle< T > BALL::TAngle< T >::operator/ ( const TAngle< T > & val ) throw (Exception::DivisionByZero)

Divide this angle by a value.

Parameters:
val the angle to divide by
Returns:
TAngle, the new angle

template<typename T>
TAngle< T > & BALL::TAngle< T >::operator/= ( const T & val ) throw (Exception::DivisionByZero)

Divide this angle by a value.

Parameters:
val the angle to divide by
Returns:
TAngle, {*this}

template<typename T >
TAngle< T > & BALL::TAngle< T >::operator/= ( const TAngle< T > & angle ) throw (Exception::DivisionByZero)

Division operator.

Parameters:
angle the angle to divide by
Returns:
TAngle, {*this}

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

References BALL::Maths::isLess(), and BALL::TAngle< T >::value.

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

References BALL::Maths::isLess(), and BALL::TAngle< T >::value.

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

References BALL::Maths::isLessOrEqual(), and BALL::TAngle< T >::value.

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

References BALL::TAngle< T >::value.

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

References BALL::Maths::isEqual(), and BALL::TAngle< T >::value.

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

References BALL::Maths::isGreater(), and BALL::TAngle< T >::value.

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

References BALL::Maths::isGreaterOrEqual(), and BALL::TAngle< T >::value.

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

References BALL::TAngle< T >::value.

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

References BALL::TAngle< T >::value.

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

template<typename T >
T BALL::TAngle< T >::toDegree ( ) const

Return the value of the angle.

Returns:
value in degrees

References BALL::TAngle< T >::value.

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

template<typename T >
T BALL::TAngle< T >::toRadian ( ) const

Return the value of the angle.

Returns:
value in radians

References BALL::TAngle< T >::value.


Generated on Thu Aug 6 18:30:34 2009 for BALL by doxygen 1.5.8