casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Static Private Member Functions | Private Attributes | Friends
casa::Euler Class Reference

Vector of Euler rotation angles. More...

#include <Euler.h>

List of all members.

Public Member Functions

 Euler ()
 Default constructor generates zero filled Double vector of length 3, with (1,2,3) axes.
 Euler (const Euler &other)
 Copy constructor.
Euleroperator= (const Euler &other)
 Copy assignment.
 Euler (Double in0, Double in1=0, Double in2=0)
 Constructs an Euler with specified angles and (1,2,3) axes.
 Euler (Double in0, uInt ax0, Double in1=0, uInt ax1=0, Double in2=0, uInt ax2=0)
 Constructs an Euler with specified angles and axes.
 Euler (const Quantity &in0)
 Euler (const Quantity &in0, const Quantity &in1)
 Euler (const Quantity &in0, const Quantity &in1, const Quantity &in2)
 Euler (const Quantity &in0, uInt ax0)
 Euler (const Quantity &in0, uInt ax0, const Quantity &in1, uInt ax1=0)
 Euler (const Quantity &in0, uInt ax0, const Quantity &in1, uInt ax1, const Quantity &in2, uInt ax2=0)
 Euler (const Quantum< Vector< Double > > &in)
 Constructs an Euler (zero filled) from elements of Quantity vector.
 Euler (const Quantum< Vector< Double > > &in, const Vector< uInt > &ax)
 ~Euler ()
 Destructor.
Euler operator- () const
 The unary minus reverses the sign and order of the Euler angles.
Euleroperator+= (const Euler &right)
 Addition and subtraction.
Euler operator+ (const Euler &right) const
Euleroperator-= (const Euler &right)
Euler operator- (const Euler &right) const
Doubleoperator() (uInt which)
 Return the which' angle.
const Doubleoperator() (uInt which) const
Quantum< Vector< Double > > getAngle () const
 with the optional conversion units.
Quantum< Vector< Double > > getAngle (const Unit &unit) const
void set (uInt which, uInt ax)
 Set an axis.
void set (uInt ax0, uInt ax1, uInt ax2)
 Set all axes.
Int get (uInt which) const
 Get an axis.

Static Private Member Functions

static Double makeRad (const Quantity &in)
 The makeRad functions check and convert the input Quantities to radians.
static Vector< DoublemakeRad (const Quantum< Vector< Double > > &in)

Private Attributes

Vector< Doubleeuler
 Actual vector with 3 Euler angles.
Vector< Intaxes
 Axes.

Friends

ostream & operator<< (ostream &os, const Euler &eul)
 Output Euler angles.

Detailed Description

Vector of Euler rotation angles.

Intended use:

Internal

Review Status

Reviewed By:
tcornwel
Date Reviewed:
1996/02/15
Test programs:
tMeasMath

Prerequisite

Etymology

Euler angles describe the rotation of a coordinate system

Synopsis

The Euler class is a vector of three angles, together with a vector of three signed integers. The angles describe the rotation around an axis of a coordinate system, the integers the actual axis around which to rotate. The integer can be 0 (do not use this angle) or 1,2,3 to indicate the axis. Given angles (a1,a2,a3) and axes (i1,i2,i3), the actual rotation matrix constructed will be:
R = Ri3(a3).Ri2(a2).Ri1(a1)
It has the following constructors:

It has a unary minus operator, which reverses the sign and order of the three angles, and the order of the axes, to produce the Euler angles for a rotation with opposite signs, so that RotMatrix(-Euler) will generate the inverse rotation matrix as compared with RotMatrix(Euler).
getAngle() functions return the Euler angles as a Quantum vector.
Eulers have addition and subtraction (on the angles). Note that this produces the correct angles for a combined rotation only if the axes are identical.
A (which) operator returns the indicated angle. Set/get functions manipulate the axes.

Example

        Quantity angle(25,"deg");       // 25 degrees
        Euler eul(angle.get().getValue(),2); // rotate over axis 2 (radians)
        RotMatrix rot(eul);             // generates rotation matrix

Motivation

To use generated precession and nutation results

Definition at line 115 of file Euler.h.


Constructor & Destructor Documentation

Default constructor generates zero filled Double vector of length 3, with (1,2,3) axes.

casa::Euler::Euler ( const Euler other)

Copy constructor.

casa::Euler::Euler ( Double  in0,
Double  in1 = 0,
Double  in2 = 0 
)

Constructs an Euler with specified angles and (1,2,3) axes.

casa::Euler::Euler ( Double  in0,
uInt  ax0,
Double  in1 = 0,
uInt  ax1 = 0,
Double  in2 = 0,
uInt  ax2 = 0 
)

Constructs an Euler with specified angles and axes.

casa::Euler::Euler ( const Quantity in0)

Thrown Exceptions

Constructs an Euler from specified angle quantities

casa::Euler::Euler ( const Quantity in0,
const Quantity in1 
)
casa::Euler::Euler ( const Quantity in0,
const Quantity in1,
const Quantity in2 
)
casa::Euler::Euler ( const Quantity in0,
uInt  ax0 
)
casa::Euler::Euler ( const Quantity in0,
uInt  ax0,
const Quantity in1,
uInt  ax1 = 0 
)
casa::Euler::Euler ( const Quantity in0,
uInt  ax0,
const Quantity in1,
uInt  ax1,
const Quantity in2,
uInt  ax2 = 0 
)
casa::Euler::Euler ( const Quantum< Vector< Double > > &  in)

Constructs an Euler (zero filled) from elements of Quantity vector.

casa::Euler::Euler ( const Quantum< Vector< Double > > &  in,
const Vector< uInt > &  ax 
)

Destructor.


Member Function Documentation

Int casa::Euler::get ( uInt  which) const

Get an axis.

with the optional conversion units.

Quantum<Vector<Double> > casa::Euler::getAngle ( const Unit unit) const
static Double casa::Euler::makeRad ( const Quantity in) [static, private]

The makeRad functions check and convert the input Quantities to radians.

static Vector<Double> casa::Euler::makeRad ( const Quantum< Vector< Double > > &  in) [static, private]
Double& casa::Euler::operator() ( uInt  which)

Return the which' angle.

const Double& casa::Euler::operator() ( uInt  which) const
Euler casa::Euler::operator+ ( const Euler right) const
Euler& casa::Euler::operator+= ( const Euler right)

Addition and subtraction.

Euler casa::Euler::operator- ( ) const

The unary minus reverses the sign and order of the Euler angles.

Euler casa::Euler::operator- ( const Euler right) const
Euler& casa::Euler::operator-= ( const Euler right)
Euler& casa::Euler::operator= ( const Euler other)

Copy assignment.

void casa::Euler::set ( uInt  which,
uInt  ax 
)

Set an axis.

void casa::Euler::set ( uInt  ax0,
uInt  ax1,
uInt  ax2 
)

Set all axes.


Friends And Related Function Documentation

ostream& operator<< ( ostream &  os,
const Euler eul 
) [friend]

Output Euler angles.


Member Data Documentation

Axes.

Definition at line 195 of file Euler.h.

Actual vector with 3 Euler angles.

Definition at line 193 of file Euler.h.


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