Physsim::EulerAngles Class Reference

Class for representation of orientation by a set of three (Euler) angles. More...

#include <EulerAngles.h>

Inheritance diagram for Physsim::EulerAngles:

Physsim::Base List of all members.

Public Types

enum  EulerAngleType { eRollPitchYaw }
 Types of Euler angle representations.

Public Member Functions

 EulerAngles ()
 Default constructor.
 EulerAngles (EulerAngleType type)
 Constructs an Euler angle object using the particular type.
 EulerAngles (const EulerAngles &source)
 Sets this Euler angle from another.
 EulerAngles (const Quat *q, EulerAngleType type)
 Constructs an Euler angle object from a quaternion and a type.
 EulerAngles (Real alpha, Real beta, Real gamma, EulerAngleType type)
 Constructs an Euler angle object from three Real values and a type.
 EulerAngles (const Matrix3 *m, EulerAngleType type)
 Constructs an Euler angle object from a 3x3 rotation matrix and the specified type.
bool epsilon_equals (const EulerAngles &e, Real epsilon) const
 Determines whether this Euler angle object is equal to another within some tolerance epsilon.
void set (const Matrix3 *m)
 Sets the object from a rotation matrix.
void set (const Quat *q)
 Sets this object from a quaternion object.
void operator= (const EulerAngles &source)
 Copies a Euler angle object.
EulerAngles operator * (const EulerAngles &e) const
 Multiplies two Euler angle representations.
void operator *= (const EulerAngles &e)
 Multiplies this Euler angle representation by another and stores the result in this.
void to_quat (Quat *q) const
 Converts this Euler angle representation to a quaternion.
void to_matrix (Matrix3 *m) const
 Converts this Euler angle representation to a rotation matrix.
void to_axis_angle (AAngle *a) const
 Converts this Euler angle representation to a axis-angle representation.
void set_type (EulerAngleType type)
 Changes the Euler angle representation.
EulerAngleType get_type () const
 Gets the type of Euler angle.

Static Public Member Functions

static bool epsilon_equals (const EulerAngles &a1, const EulerAngles &a2, Real epsilon)
 Determines whether two Euler angle objects are equal to within some tolerance epsilon.

Public Attributes

Real _alpha
Real _beta
Real _gamma

Detailed Description

Class for representation of orientation by a set of three (Euler) angles.

Like the AAngle class, EulerAngles is a convenience class. It is not used internally within the simulator code. All code for converting to/from Euler angles and rotation matrices is contained within this class, as separate code is needed for each Euler angle type.


Constructor & Destructor Documentation

EulerAngles::EulerAngles (  ) 

Default constructor.

Sets default Euler angle type to roll-pitch-yaw. alpha, beta, and gamma are set to zero.

EulerAngles::EulerAngles ( EulerAngleType  type  ) 

Constructs an Euler angle object using the particular type.

alpha, beta, and gamma are set to zero.


Member Function Documentation

EulerAngles EulerAngles::operator * ( const EulerAngles e  )  const

Multiplies two Euler angle representations.

This has the effect of performing a rotation by a, then performing a rotation by this.

void EulerAngles::operator *= ( const EulerAngles e  ) 

Multiplies this Euler angle representation by another and stores the result in this.

This has the effect of performing a rotation by a, then performing a rotation by this.

void EulerAngles::to_quat ( Quat q  )  const

Converts this Euler angle representation to a quaternion.

Note:
that this conversion is somewhat inefficient, as it uses a rotation matrix as an intermediate form.

void EulerAngles::to_axis_angle ( AAngle a  )  const

Converts this Euler angle representation to a axis-angle representation.

Note:
that this conversion is somewhat inefficient, as it uses a rotation matrix as an intermediate form.


The documentation for this class was generated from the following files:
Generated on Wed Oct 24 14:54:22 2007 for Physsim by  doxygen 1.5.1