Public Member Functions | Static Public Member Functions | Public Attributes | Friends
Quaternion Class Reference

A quaternion class. More...

#include <Quaternion.hh>

List of all members.

Public Member Functions

 Quaternion ()
 Default Constructor.
 Quaternion (const double &w, const double &x, const double &y, const double &z)
 Constructor.
 Quaternion (const double &_roll, const double &_pitch, const double &_yaw)
 Constructor from Euler angles.
 Quaternion (const Vector3 &_axis, const double &_angle)
 Constructor from axis angle.
 Quaternion (const Vector3 &_rpy)
 Constructor.
 Quaternion (const Quaternion &qt)
 Copy constructor.
 ~Quaternion ()
 Destructor.
const Quaternionoperator= (const Quaternion &qt)
 Equal operator.
void Invert ()
 Invert the quaternion.
Quaternion GetInverse () const
 Get the inverse of this quaternion.
void SetToIdentity ()
 Set the quatern to the identity.
Quaternion GetLog () const
Quaternion GetExp () const
void Normalize ()
 Normalize the quaternion.
void SetFromAxis (double x, double y, double z, double a)
 Set the quaternion from an axis and angle.
void SetFromAxis (const Vector3 &_axis, double _a)
 Set the quaternion from an axis and angle.
void Set (double u, double x, double y, double z)
 Set this quaternion from another.
void SetFromEuler (const Vector3 &vec)
 Set the quaternion from Euler angles.
Vector3 GetAsEuler () const
 Return the rotation in Euler angles.
double GetRoll ()
 Get the Euler roll angle in radians.
double GetPitch ()
 Get the Euler pitch angle in radians.
double GetYaw ()
 Get the Euler yaw angle in radians.
void GetAsAxis (Vector3 &axis, double &angle) const
 Return rotation as axis and angle.
void Scale (double scale)
 Scale a Quaternionion.
Quaternion operator+ (const Quaternion &qt) const
 Addition operator.
Quaternion operator+= (const Quaternion &qt)
 Addition operator.
Quaternion operator- (const Quaternion &qt) const
 Substraction operator.
Quaternion operator-= (const Quaternion &qt)
 Substraction operator.
Quaternion operator* (const Quaternion &_q) const
 Multiplication operator.
Quaternion operator* (const double &_f) const
 Multipcation operator.
Quaternion operator*= (const Quaternion &qt)
 Multiplication operator.
Vector3 operator* (const Vector3 &v) const
 Vector3 multiplication operator.
bool operator== (const Quaternion &_qt) const
 Equality operator.
bool operator!= (const Quaternion &_qt) const
 Inequality operator.
Quaternion operator- () const
 Negate operator.
Vector3 RotateVector (const Vector3 &_vec) const
 Rotate a vector using the quaternion.
Vector3 RotateVectorReverse (Vector3 vec) const
 Do the reverse rotation of a vector by this quaternion.
bool IsFinite () const
 See if a quatern is finite (e.g., not nan)
void Correct ()
 Correct any nan.
Matrix3 GetAsMatrix3 () const
 Get the quaternion as a 3x3 matrix.
Matrix4 GetAsMatrix4 () const
 Get the quaternion as a 4x4 matrix.
Vector3 GetXAxis () const
Vector3 GetYAxis () const
Vector3 GetZAxis () const
void Round (int _precision)
 Round all values to _precision decimal places.
double Dot (const Quaternion &_q) const
 Dot product.

Static Public Member Functions

static Quaternion EulerToQuaternion (const Vector3 &vec)
 Convert euler angles to quatern.
static Quaternion EulerToQuaternion (double x, double y, double z)
 Convert euler angles to quatern.
static Quaternion Squad (double _fT, const Quaternion &_rkP, const Quaternion &_rkA, const Quaternion &_rkB, Quaternion &_rkQ, bool _shortestPath=false)
 Spherical quadratic interpolation.
static Quaternion Slerp (double _fT, const Quaternion &_rkP, const Quaternion &_rkQ, bool _shortestPath=false)
 Spherical linear interpolation.

Public Attributes

double w
 Attributes of the quaternion.
double x
 Attributes of the quaternion.
double y
 Attributes of the quaternion.
double z
 Attributes of the quaternion.

Friends

std::ostream & operator<< (std::ostream &out, const gazebo::math::Quaternion &q)
 Ostream operator.
std::istream & operator>> (std::istream &in, gazebo::math::Quaternion &q)
 Istream operator.

Detailed Description

A quaternion class.


Constructor & Destructor Documentation

Quaternion ( const double &  w,
const double &  x,
const double &  y,
const double &  z 
)

Constructor.

Parameters:
wW param
xX param
yY param
zZ param
Quaternion ( const Quaternion qt)

Copy constructor.

Parameters:
qtQuaternion to copy

Member Function Documentation

Vector3 GetAsEuler ( ) const

Return the rotation in Euler angles.

Returns:
This quaternion as an Euler vector
Quaternion GetInverse ( ) const [inline]

Get the inverse of this quaternion.

Returns:
Inverse quarenion

References Quaternion::w, Quaternion::x, Quaternion::y, and Quaternion::z.

Referenced by Pose::CoordPositionSub(), Pose::CoordRotationSub(), and Quaternion::RotateVector().

bool IsFinite ( ) const

See if a quatern is finite (e.g., not nan)

Returns:
True if quatern is finite
bool operator!= ( const Quaternion _qt) const

Inequality operator.

Parameters:
_qtQuaternion for comparison
Returns:
True if not equal
Quaternion operator* ( const Quaternion _q) const [inline]

Multiplication operator.

Parameters:
qtQuaternion for multiplication
Returns:
This quatern multiplied by the parameter

References Quaternion::Quaternion(), Quaternion::w, Quaternion::x, Quaternion::y, and Quaternion::z.

Quaternion operator* ( const double &  _f) const

Multipcation operator.

Parameters:
_fDouble factor
Returns:
Quaternion multiplied by _f
Quaternion operator*= ( const Quaternion qt)

Multiplication operator.

Parameters:
qtQuaternion for multiplication
Returns:
This quatern multiplied by the parameter
Quaternion operator+ ( const Quaternion qt) const

Addition operator.

Parameters:
qtQuaternion for addition
Returns:
This quatern + qt
Quaternion operator+= ( const Quaternion qt)

Addition operator.

Parameters:
qtQuaternion for addition
Returns:
This quatern + qt
Quaternion operator- ( const Quaternion qt) const

Substraction operator.

Parameters:
qtQuaternion for substraction
Returns:
This quatern - qt
Quaternion operator-= ( const Quaternion qt)

Substraction operator.

Parameters:
qtQuaternion for substraction
Returns:
This quatern - qt
const Quaternion& operator= ( const Quaternion qt)

Equal operator.

Parameters:
qtQuaternion to copy
bool operator== ( const Quaternion _qt) const

Equality operator.

Parameters:
_qtQuaternion for comparison
Returns:
True if equal
Vector3 RotateVector ( const Vector3 _vec) const [inline]

Rotate a vector using the quaternion.

Returns:
The rotated vector

References Quaternion::GetInverse(), Vector3::x, Quaternion::x, Vector3::y, Quaternion::y, Vector3::z, and Quaternion::z.

void Scale ( double  scale)

Scale a Quaternionion.

Parameters:
scaleAmount to scale this rotation
void SetFromAxis ( double  x,
double  y,
double  z,
double  a 
)

Set the quaternion from an axis and angle.

Parameters:
xX axis
yY axis
zZ axis
aAngle in radians
void SetFromAxis ( const Vector3 _axis,
double  _a 
)

Set the quaternion from an axis and angle.

Parameters:
_axisAxis
_aAngle in radians
void SetFromEuler ( const Vector3 vec)

Set the quaternion from Euler angles.

Parameters:
vecEuler angle

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  out,
const gazebo::math::Quaternion q 
) [friend]

Ostream operator.

Parameters:
outOstream
qQuaternion to output
Returns:
The ostream
std::istream& operator>> ( std::istream &  in,
gazebo::math::Quaternion q 
) [friend]

Istream operator.

Parameters:
inOstream
qQuaternion to read values into
Returns:
The istream

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