Ignition Math

API Reference

6.6.0

The Angle class is used to simplify and clarify the use of radians and degrees measurements. A default constructed Angle instance has a value of zero radians/degrees. More...

#include <ignition/math/Angle.hh>

Public Member Functions

 Angle ()
 Default constructor that initializes an Angle to zero radians/degrees. More...
 
 Angle (const double _radian)
 Conversion constructor that initializes an Angle to the specified radians. This constructor supports implicit conversion of a double to an Angle. For example: More...
 
 Angle (const Angle &_angle)
 Copy constructor that initializes this Angle to the value contained in the _angle parameter. More...
 
virtual ~Angle ()
 Destructor. More...
 
void Degree (double _degree)
 Set the value from an angle in degrees. More...
 
double Degree () const
 Get the angle in degrees. More...
 
void Normalize ()
 Normalize the angle in the range -Pi to Pi. This modifies the value contained in this Angle instance. More...
 
Angle Normalized () const
 Return the normalized angle in the range -Pi to Pi. This does not modify the value contained in this Angle instance. More...
 
bool operator!= (const Angle &_angle) const
 Inequality operator. More...
 
double operator() () const
 Return the angle's radian value. More...
 
double operator* () const
 Dereference operator. More...
 
Angle operator* (const Angle &_angle) const
 Multiplication operator, result = this * _angle. More...
 
Angle operator*= (const Angle &_angle)
 Multiplication set operator, this = this * _angle. More...
 
Angle operator+ (const Angle &_angle) const
 Addition operator, result = this + _angle. More...
 
Angle operator+= (const Angle &_angle)
 Addition set operator, this = this + _angle. More...
 
Angle operator- (const Angle &_angle) const
 Subtraction operator, result = this - _angle. More...
 
Angle operator-= (const Angle &_angle)
 Subtraction set operator, this = this - _angle. More...
 
Angle operator/ (const Angle &_angle) const
 Division operator, result = this / _angle. More...
 
Angle operator/= (const Angle &_angle)
 Division set operator, this = this / _angle. More...
 
bool operator< (const Angle &_angle) const
 Less than operator. More...
 
bool operator<= (const Angle &_angle) const
 Less than or equal operator. More...
 
bool operator== (const Angle &_angle) const
 Equality operator, result = this == _angle. More...
 
bool operator> (const Angle &_angle) const
 Greater than operator. More...
 
bool operator>= (const Angle &_angle) const
 Greater than or equal operator. More...
 
void Radian (double _radian)
 Set the value from an angle in radians. More...
 
double Radian () const
 Get the angle in radians. More...
 
void SetDegree (double _degree)
 Set the value from an angle in degrees. More...
 
void SetRadian (double _radian)
 Set the value from an angle in radians. More...
 

Static Public Attributes

static const Angle HalfPi
 An angle with a value of Pi * 0.5. Equivalent to math::Angle(IGN_PI * 0.5). More...
 
static const Angle Pi
 An angle with a value of Pi. Equivalent to math::Angle(IGN_PI). More...
 
static const Angle TwoPi
 An angle with a value of Pi * 2. Equivalent to math::Angle(IGN_PI * 2). More...
 
static const Angle Zero
 An angle with a value of zero. Equivalent to math::Angle(0). More...
 

Friends

std::ostreamoperator<< (std::ostream &_out, const Angle &_a)
 Stream insertion operator. Outputs in radians. More...
 
std::istreamoperator>> (std::istream &_in, Angle &_a)
 Stream extraction operator. Assumes input is in radians. More...
 

Detailed Description

The Angle class is used to simplify and clarify the use of radians and degrees measurements. A default constructed Angle instance has a value of zero radians/degrees.

Unless otherwise specified, the Angle class assumes units are in radians. An example of this are the stream insertion (<<) and extraction (>>) operators.

Example

#include <iostream>
int main(int argc, char **argv)
{
// Create an angle.
// A default constructed angle should be zero.
std::cout << "The angle 'a' should be zero: " << a << std::endl;
// Output the angle in radians and degrees.
std::cout << "Pi in radians: " << a << std::endl;
std::cout << "Pi in degrees: " << a.Degree() << std::endl;
// The Angle class overloads the +=, and many other, math operators.
std::cout << "Pi + PI/2 in radians: " << a << std::endl;
std::cout << "Normalized to the range -Pi and Pi: "
<< a.Normalized() << std::endl;
}

Constructor & Destructor Documentation

◆ Angle() [1/3]

Angle ( )

Default constructor that initializes an Angle to zero radians/degrees.

◆ Angle() [2/3]

Angle ( const double  _radian)

Conversion constructor that initializes an Angle to the specified radians. This constructor supports implicit conversion of a double to an Angle. For example:

Angle a = 3.14;
Parameters
[in]_radianThe radians used to initialize this Angle.

◆ Angle() [3/3]

Angle ( const Angle _angle)

Copy constructor that initializes this Angle to the value contained in the _angle parameter.

Parameters
[in]_angleAngle to copy

◆ ~Angle()

virtual ~Angle ( )
virtual

Destructor.

Member Function Documentation

◆ Degree() [1/2]

void Degree ( double  _degree)

Set the value from an angle in degrees.

Parameters
[in]_degreeDegree value
See also
SetDegree(double)

◆ Degree() [2/2]

double Degree ( ) const

Get the angle in degrees.

Returns
Double containing the angle's degree value.

◆ Normalize()

void Normalize ( )

Normalize the angle in the range -Pi to Pi. This modifies the value contained in this Angle instance.

See also
Normalized()

Referenced by MassMatrix3< T >::PrincipalAxesOffset().

◆ Normalized()

Angle Normalized ( ) const

Return the normalized angle in the range -Pi to Pi. This does not modify the value contained in this Angle instance.

Returns
The normalized value of this Angle.

◆ operator!=()

bool operator!= ( const Angle _angle) const

Inequality operator.

Parameters
[in]_angleAngle to check for inequality.
Returns
True if this != _angle.

Referenced by Angle::operator*().

◆ operator()()

double operator() ( ) const

Return the angle's radian value.

Returns
double containing the angle's radian value

◆ operator*() [1/2]

◆ operator*() [2/2]

Angle operator* ( const Angle _angle) const

Multiplication operator, result = this * _angle.

Parameters
[in]_angleAngle for multiplication.
Returns
The new angle

◆ operator*=()

Angle operator*= ( const Angle _angle)

Multiplication set operator, this = this * _angle.

Parameters
[in]_angleAngle for multiplication.
Returns
The new angle.

Referenced by Angle::operator*().

◆ operator+()

Angle operator+ ( const Angle _angle) const

Addition operator, result = this + _angle.

Parameters
[in]_angleAngle for addition.
Returns
The new angle.

Referenced by Angle::operator*().

◆ operator+=()

Angle operator+= ( const Angle _angle)

Addition set operator, this = this + _angle.

Parameters
[in]_angleAngle for addition.
Returns
The new angle.

Referenced by Angle::operator*().

◆ operator-()

Angle operator- ( const Angle _angle) const

Subtraction operator, result = this - _angle.

Parameters
[in]_angleAngle for subtraction.
Returns
The new angle.

Referenced by Angle::operator*().

◆ operator-=()

Angle operator-= ( const Angle _angle)

Subtraction set operator, this = this - _angle.

Parameters
[in]_angleAngle for subtraction.
Returns
The new angle.

Referenced by Angle::operator*().

◆ operator/()

Angle operator/ ( const Angle _angle) const

Division operator, result = this / _angle.

Parameters
[in]_angleAngle for division.
Returns
The new angle.

Referenced by Angle::operator*().

◆ operator/=()

Angle operator/= ( const Angle _angle)

Division set operator, this = this / _angle.

Parameters
[in]_angleAngle for division.
Returns
The new angle.

Referenced by Angle::operator*().

◆ operator<()

bool operator< ( const Angle _angle) const

Less than operator.

Parameters
[in]_angleAngle to check.
Returns
True if this < _angle.

Referenced by Angle::operator*().

◆ operator<=()

bool operator<= ( const Angle _angle) const

Less than or equal operator.

Parameters
[in]_angleAngle to check.
Returns
True if this <= _angle.

Referenced by Angle::operator*().

◆ operator==()

bool operator== ( const Angle _angle) const

Equality operator, result = this == _angle.

Parameters
[in]_angleAngle to check for equality.
Returns
True if this == _angle.

Referenced by Angle::operator*().

◆ operator>()

bool operator> ( const Angle _angle) const

Greater than operator.

Parameters
[in]_angleAngle to check.
Returns
True if this > _angle.

Referenced by Angle::operator*().

◆ operator>=()

bool operator>= ( const Angle _angle) const

Greater than or equal operator.

Parameters
[in]_angleAngle to check.
Returns
True if this >= _angle.

Referenced by Angle::operator*().

◆ Radian() [1/2]

void Radian ( double  _radian)

Set the value from an angle in radians.

Parameters
[in]_radianRadian value.
See also
SetRadian(double)

Referenced by MassMatrix3< T >::PrincipalAxesOffset().

◆ Radian() [2/2]

double Radian ( ) const

Get the angle in radians.

Returns
Double containing the angle's radian value.

◆ SetDegree()

void SetDegree ( double  _degree)

Set the value from an angle in degrees.

Parameters
[in]_degreeDegree value

◆ SetRadian()

void SetRadian ( double  _radian)

Set the value from an angle in radians.

Parameters
[in]_radianRadian value.

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream _out,
const Angle _a 
)
friend

Stream insertion operator. Outputs in radians.

Parameters
[in]_outOutput stream.
[in]_aAngle to output.
Returns
The output stream.

◆ operator>>

std::istream& operator>> ( std::istream _in,
Angle _a 
)
friend

Stream extraction operator. Assumes input is in radians.

Parameters
[in,out]_inInput stream.
[out]_aAngle to read value into.
Returns
The input stream.

Member Data Documentation

◆ HalfPi

const Angle HalfPi
static

An angle with a value of Pi * 0.5. Equivalent to math::Angle(IGN_PI * 0.5).

◆ Pi

const Angle Pi
static

An angle with a value of Pi. Equivalent to math::Angle(IGN_PI).

◆ TwoPi

const Angle TwoPi
static

An angle with a value of Pi * 2. Equivalent to math::Angle(IGN_PI * 2).

◆ Zero

const Angle Zero
static

An angle with a value of zero. Equivalent to math::Angle(0).


The documentation for this class was generated from the following file: