casacore
|
#include <Euler.h>
Public Member Functions | |
Euler () | |
Default constructor generates zero filled Double vector of length 3, with (1,2,3) axes. More... | |
Euler (const Euler &other) | |
Copy constructor. More... | |
Euler & | operator= (const Euler &other) |
Copy assignment. More... | |
Euler (Double in0, Double in1=0, Double in2=0) | |
Constructs an Euler with specified angles and (1,2,3) axes. More... | |
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. More... | |
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. More... | |
Euler (const Quantum< Vector< Double > > &in, const Vector< uInt > &ax) | |
~Euler () | |
Destructor. More... | |
Euler | operator- () const |
The unary minus reverses the sign and order of the Euler angles. More... | |
Euler & | operator+= (const Euler &right) |
Addition and subtraction. More... | |
Euler | operator+ (const Euler &right) const |
Euler & | operator-= (const Euler &right) |
Euler | operator- (const Euler &right) const |
Double & | operator() (uInt which) |
Return the which' angle. More... | |
const Double & | operator() (uInt which) const |
Quantum< Vector< Double > > | getAngle () const |
with the optional conversion units. More... | |
Quantum< Vector< Double > > | getAngle (const Unit &unit) const |
void | set (uInt which, uInt ax) |
Set an axis. More... | |
void | set (uInt ax0, uInt ax1, uInt ax2) |
Set all axes. More... | |
Int | get (uInt which) const |
Get an axis. More... | |
Static Private Member Functions | |
static Double | makeRad (const Quantity &in) |
The makeRad functions check and convert the input Quantities to radians. More... | |
static Vector< Double > | makeRad (const Quantum< Vector< Double > > &in) |
Private Attributes | |
Vector< Double > | euler |
vector with 3 Euler angles (data.first) More... | |
Vector< Int > | axes |
Axes (data.second) More... | |
Friends | |
ostream & | operator<< (ostream &os, const Euler &eul) |
Output Euler angles. More... | |
Vector of Euler rotation angles
Internal
Euler angles describe the rotation of a coordinate system
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:
Quantum<Vector<Double> >
) creates a zero expanded Euler from at most the first three elements of Quantity vector; with (1,2,3) Quantum<Vector<Double> >, Vector<uInt>
) creates a zero expanded Euler with given values 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.
To use generated precession and nutation results
casacore::Euler::Euler | ( | ) |
Default constructor generates zero filled Double vector of length 3, with (1,2,3) axes.
casacore::Euler::Euler | ( | const Euler & | other | ) |
Copy constructor.
Constructs an Euler with specified angles and (1,2,3) axes.
casacore::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.
casacore::Euler::Euler | ( | const Quantity & | in0 | ) |
casacore::Euler::Euler | ( | const Quantity & | in0, |
uInt | ax0, | ||
const Quantity & | in1, | ||
uInt | ax1, | ||
const Quantity & | in2, | ||
uInt | ax2 = 0 |
||
) |
Constructs an Euler (zero filled) from elements of Quantity vector.
casacore::Euler::~Euler | ( | ) |
Destructor.
The makeRad functions check and convert the input Quantities to radians.
|
staticprivate |
Euler casacore::Euler::operator- | ( | ) | const |
The unary minus reverses the sign and order of the Euler angles.