Gazebo Math

API Reference

6.15.1

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 (Angle &&_angle) noexcept
 Move constructor. More...
 
 Angle (const Angle &_angle)
 Copy constructor that initializes this Angle to the value contained in the _angle parameter. 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...
 
virtual ~Angle ()
 Destructor. More...
 
double Degree () const
 Get the angle in degrees. More...
 
void Degree (double _degree)
 Set the value from an 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...
 
Angleoperator= (Angle &&_angle) noexcept
 Move assignment operator. More...
 
Angleoperator= (const Angle &_angle)
 Copy assignment 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...
 
double Radian () const
 Get the angle in radians. More...
 
void Radian (double _radian)
 Set the value from an 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...
 

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>
#include <gz/math/Angle.hh>
int main(int argc, char **argv)
{
gz::math::Angle a;
// A default constructed angle should be zero.
std::cout << "The angle 'a' should be zero: " << a << std::endl;
a = gz::math::Angle::HalfPi;
a = gz::math::Angle::Pi;
std::cout << "Pi in radians: " << a << std::endl;
std::cout << "Pi in degrees: " << a.Degree() << std::endl;
a += gz::math::Angle::HalfPi;
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/4]

Angle ( )

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

◆ Angle() [2/4]

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/4]

Angle ( const Angle _angle)

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

Parameters
[in]_angleAngle to copy

◆ Angle() [4/4]

Angle ( Angle &&  _angle)
noexcept

Move constructor.

Parameters
[in]_angleAngle to move

◆ ~Angle()

virtual ~Angle ( )
virtual

Destructor.

Member Function Documentation

◆ Degree() [1/2]

double Degree ( ) const

Get the angle in degrees.

Returns
Double containing the angle's degree value.

◆ Degree() [2/2]

void Degree ( double  _degree)

Set the value from an angle in degrees.

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

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

◆ operator()()

double operator() ( ) const

Return the angle's radian value.

Returns
double containing the angle's radian value

◆ operator*() [1/2]

double operator* ( ) const
inline

Dereference operator.

Returns
Double containing the angle's radian value

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

◆ operator+()

Angle operator+ ( const Angle _angle) const

Addition operator, result = this + _angle.

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

◆ operator+=()

Angle operator+= ( const Angle _angle)

Addition set operator, this = this + _angle.

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

◆ operator-()

Angle operator- ( const Angle _angle) const

Subtraction operator, result = this - _angle.

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

◆ operator-=()

Angle operator-= ( const Angle _angle)

Subtraction set operator, this = this - _angle.

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

◆ operator/()

Angle operator/ ( const Angle _angle) const

Division operator, result = this / _angle.

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

◆ operator/=()

Angle operator/= ( const Angle _angle)

Division set operator, this = this / _angle.

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

◆ operator<()

bool operator< ( const Angle _angle) const

Less than operator.

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

◆ operator<=()

bool operator<= ( const Angle _angle) const

Less than or equal operator.

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

◆ operator=() [1/2]

Angle& operator= ( Angle &&  _angle)
noexcept

Move assignment operator.

Parameters
[in]_angleAngle to move

◆ operator=() [2/2]

Angle& operator= ( const Angle _angle)

Copy assignment operator.

Parameters
[in]_angleAngle to copy

◆ operator==()

bool operator== ( const Angle _angle) const

Equality operator, result = this == _angle.

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

◆ operator>()

bool operator> ( const Angle _angle) const

Greater than operator.

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

◆ operator>=()

bool operator>= ( const Angle _angle) const

Greater than or equal operator.

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

◆ Radian() [1/2]

double Radian ( ) const

Get the angle in radians.

Returns
Double containing the angle's radian value.

◆ Radian() [2/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().

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

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:
T endl(T... args)
Angle()
Default constructor that initializes an Angle to zero radians/degrees.