Vector of Euler rotation angles. More...
#include <Euler.h>
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. | |
| Euler & | operator= (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. | |
| Euler & | operator+= (const Euler &right) |
| Addition and subtraction. | |
| 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. | |
| const Double & | operator() (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. | |
Private Types | |
| typedef std::pair< Vector < Double > *, Vector< Int > * > | DataArrays |
Private Member Functions | |
| DataArrays | get_arrays () |
| void | return_arrays (DataArrays array) |
Static Private Member Functions | |
| static Double | makeRad (const Quantity &in) |
| The makeRad functions check and convert the input Quantities to radians. | |
| static Vector< Double > | makeRad (const Quantum< Vector< Double > > &in) |
Private Attributes | |
| DataArrays | data |
| data container | |
| Vector< Double > & | euler |
| vector with 3 Euler angles (data.first) | |
| Vector< Int > & | axes |
| Axes (data.second). | |
Friends | |
| ostream & | operator<< (ostream &os, const Euler &eul) |
| Output Euler angles. | |
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.
Quantity angle(25,"deg"); // 25 degrees Euler eul(angle.get().getValue(),2); // rotate over axis 2 (radians) RotMatrix rot(eul); // generates rotation matrix
To use generated precession and nutation results
Definition at line 116 of file Euler.h.
typedef std::pair<Vector<Double> *, Vector<Int> *> casacore::Euler::DataArrays [private] |
| 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.
| DataArrays casacore::Euler::get_arrays | ( | ) | [private] |
| static Vector<Double> casacore::Euler::makeRad | ( | const Quantum< Vector< Double > > & | in | ) | [static, private] |
The makeRad functions check and convert the input Quantities to radians.
| Euler casacore::Euler::operator- | ( | ) | const |
The unary minus reverses the sign and order of the Euler angles.
| void casacore::Euler::return_arrays | ( | DataArrays | array | ) | [private] |
Vector<Int>& casacore::Euler::axes [private] |
DataArrays casacore::Euler::data [private] |
Vector<Double>& casacore::Euler::euler [private] |
vector with 3 Euler angles (data.first)
1.6.1