jrlMathTools::Angle Class Reference

This class implements simple computations on angles. More...

#include <jrl/mathtools/angle.hh>

List of all members.

Public Member Functions

 Angle ()
 Angle (const double &angle)
 Angle (const Angle &angle)
 Copy Constructor.
 ~Angle ()
 Trivial destructor.
const double & value () const
 Angle value.
double degree () const
 Return value in degrees (for output only!).
 operator const double & () const
 Cast into a double.
Angleoperator= (const Angle &angle)
 Operator =.
Angleoperator= (const double &value)
 Operator = with a double.
Angle interpolate (const double &alpha, const Angle &angle) const
 Interpolation between two angles.
std::ostream & display (std::ostream &os) const
 output to a stream.
double distance (const Angle &angle) const
 Distance on unit circle.
Angle operator+ (const Angle &angle) const
 Arithmetic operators overload.
Angle operator- (const Angle &angle) const
Angleoperator+= (const Angle &rhs)
Angleoperator-= (const Angle &rhs)
template<typename T >
Angle operator+ (const T &angle) const
template<typename T >
Angle operator- (const T &angle) const
template<typename T >
Angleoperator+= (const T &rhs)
template<typename T >
Angleoperator-= (const T &rhs)
template<typename T >
Angle operator* (const T &rhs) const
template<typename T >
Angle operator*= (const T &rhs) const
template<typename T >
Angle operator/= (const T &rhs) const

Static Public Member Functions

static Angle radian (const double &value)
 Named constructors.
static Angle degree (const double &value)

Protected Member Functions

void setBetweenMinusAndPlusPI ()
 Set angle between -PI and PI.
void set (const double &value)
 Update angle value.

Protected Attributes

double angle_
 angular value.

Detailed Description

This class implements simple computations on angles.

All angles *MUST* be expressed in radian.

Facilities are provided for degree/radian conversion for display/debugging only.


Constructor & Destructor Documentation

jrlMathTools::Angle::Angle ( const double &  angle) [inline]
jrlMathTools::Angle::Angle ( const Angle angle) [inline]

Copy Constructor.

Trivial destructor.


Member Function Documentation

static Angle jrlMathTools::Angle::degree ( const double &  value) [inline, static]
double jrlMathTools::Angle::degree ( ) const [inline]

Return value in degrees (for output only!).

References jrlMathTools::radianToDegree(), and value().

std::ostream& jrlMathTools::Angle::display ( std::ostream &  os) const [inline]

output to a stream.

References angle_.

Referenced by jrlMathTools::display().

double jrlMathTools::Angle::distance ( const Angle angle) const [inline]

Distance on unit circle.

References value().

Angle jrlMathTools::Angle::interpolate ( const double &  alpha,
const Angle angle 
) const [inline]

Interpolation between two angles.

Parameters:
alphainterpolation parameter between 0 and 1.
anglesecond angle of interpolation.
Returns:
an angle between this one and angle along the shortest arc.
  • if alpha = 0, return this angle,
  • if alpha = 1, return angle.

References Angle(), and value().

jrlMathTools::Angle::operator const double & ( ) const [inline]

Cast into a double.

References value().

template<typename T >
Angle jrlMathTools::Angle::operator* ( const T &  rhs) const [inline]

References Angle(), and angle_.

template<typename T >
Angle jrlMathTools::Angle::operator*= ( const T &  rhs) const [inline]

References value().

Angle jrlMathTools::Angle::operator+ ( const Angle angle) const [inline]

Arithmetic operators overload.

References Angle(), and value().

template<typename T >
Angle jrlMathTools::Angle::operator+ ( const T &  angle) const [inline]

References Angle(), and value().

Angle& jrlMathTools::Angle::operator+= ( const Angle rhs) [inline]

References value().

template<typename T >
Angle& jrlMathTools::Angle::operator+= ( const T &  rhs) [inline]

References value().

Angle jrlMathTools::Angle::operator- ( const Angle angle) const [inline]

References Angle(), and value().

template<typename T >
Angle jrlMathTools::Angle::operator- ( const T &  angle) const [inline]

References Angle(), and value().

Angle& jrlMathTools::Angle::operator-= ( const Angle rhs) [inline]

References value().

template<typename T >
Angle& jrlMathTools::Angle::operator-= ( const T &  rhs) [inline]

References value().

template<typename T >
Angle jrlMathTools::Angle::operator/= ( const T &  rhs) const [inline]

References value().

Angle& jrlMathTools::Angle::operator= ( const Angle angle) [inline]

Operator =.

References value().

Angle& jrlMathTools::Angle::operator= ( const double &  value) [inline]

Operator = with a double.

References value().

static Angle jrlMathTools::Angle::radian ( const double &  value) [inline, static]

Named constructors.

References Angle().

void jrlMathTools::Angle::set ( const double &  value) [inline, protected]

Update angle value.

References angle_, setBetweenMinusAndPlusPI(), and value().

void jrlMathTools::Angle::setBetweenMinusAndPlusPI ( ) [inline, protected]

Set angle between -PI and PI.

References angle_.

Referenced by set().


Member Data Documentation

double jrlMathTools::Angle::angle_ [protected]

angular value.

Referenced by display(), operator*(), set(), setBetweenMinusAndPlusPI(), and value().

 All Classes Namespaces Files Functions Variables Typedefs Defines