EulerAngles class describing rotation as three angles (Euler Angles).
The Euler angles definition matches that of Classical Mechanics (Goldstein). It is also the same convention defined in mathworld and used in Mathematica and CLHEP. Note that the ROOT class TRotation defines a slightly different convention.
Definition at line 45 of file EulerAngles.h.
Public Types | |
typedef double | Scalar |
Public Member Functions | |
EulerAngles () | |
Default constructor. | |
template<class OtherRotation > | |
EulerAngles (const OtherRotation &r) | |
Create from any other supported rotation (see gv_detail::convert ) | |
template<class IT > | |
EulerAngles (IT begin, IT end) | |
Construct given a pair of pointers or iterators defining the beginning and end of an array of three Scalars, to be treated as the angles phi, theta and psi. | |
EulerAngles (Scalar phi, Scalar theta, Scalar psi) | |
Constructor from phi, theta and psi. | |
template<class R > | |
Scalar | Distance (const R &r) const |
Distance between two rotations. | |
template<class IT > | |
void | GetComponents (IT begin) const |
Get the axis and then the angle into data specified by an iterator begin. | |
template<class IT > | |
void | GetComponents (IT begin, IT end) const |
Get the axis and then the angle into data specified by an iterator begin and another to the end of the desired data (4 past start). | |
void | GetComponents (Scalar &phi, Scalar &theta, Scalar &psi) const |
Get the components phi, theta, psi into three Scalars. | |
EulerAngles | Inverse () const |
Return inverse of a rotation. | |
void | Invert () |
Invert a rotation in place. | |
bool | operator!= (const EulerAngles &rhs) const |
template<class CoordSystem , class U > | |
DisplacementVector3D< CoordSystem, U > | operator() (const DisplacementVector3D< CoordSystem, U > &v) const |
Rotation operation on a displacement vector in any coordinate system and tag. | |
template<class ForeignVector > | |
ForeignVector | operator() (const ForeignVector &v) const |
Rotation operation on an arbitrary vector v. | |
template<class CoordSystem > | |
LorentzVector< CoordSystem > | operator() (const LorentzVector< CoordSystem > &v) const |
Rotation operation on a Lorentz vector in any 4D coordinate system. | |
template<class CoordSystem , class U > | |
PositionVector3D< CoordSystem, U > | operator() (const PositionVector3D< CoordSystem, U > &v) const |
Rotation operation on a position vector in any coordinate system. | |
template<class AVector > | |
AVector | operator* (const AVector &v) const |
Overload operator * for rotation on a vector. | |
EulerAngles | operator* (const AxisAngle &a) const |
EulerAngles | operator* (const EulerAngles &e) const |
EulerAngles | operator* (const Quaternion &q) const |
EulerAngles | operator* (const Rotation3D &r) const |
Multiply (combine) two rotations. | |
EulerAngles | operator* (const RotationX &rx) const |
EulerAngles | operator* (const RotationY &ry) const |
EulerAngles | operator* (const RotationZ &rz) const |
template<class R > | |
EulerAngles & | operator*= (const R &r) |
Post-Multiply (on right) by another rotation : T = T*R. | |
template<class OtherRotation > | |
EulerAngles & | operator= (OtherRotation const &r) |
Assign from any other rotation (see gv_detail::convert ) | |
bool | operator== (const EulerAngles &rhs) const |
Equality/inequality operators. | |
Scalar | Phi () const |
Return Phi Euler angle. | |
Scalar | Psi () const |
Return Psi Euler angle. | |
void | Rectify () |
Re-adjust components place angles in canonical ranges. | |
template<class IT > | |
void | SetComponents (IT begin, IT end) |
Set the three Euler angles given a pair of pointers or iterators defining the beginning and end of an array of three Scalars. | |
void | SetComponents (Scalar phi, Scalar theta, Scalar psi) |
Set the components phi, theta, psi based on three Scalars. | |
void | SetPhi (Scalar phi) |
Set Phi Euler angle // JMM 30 Jan. | |
void | SetPsi (Scalar psi) |
Set Psi Euler angle // JMM 30 Jan. | |
void | SetTheta (Scalar theta) |
Set Theta Euler angle // JMM 30 Jan. | |
Scalar | Theta () const |
Return Theta Euler angle. | |
Static Private Member Functions | |
static double | Pi () |
Private Attributes | |
double | fPhi |
double | fPsi |
double | fTheta |
#include <Math/GenVector/EulerAngles.h>
Definition at line 49 of file EulerAngles.h.
|
inline |
Default constructor.
Definition at line 54 of file EulerAngles.h.
Constructor from phi, theta and psi.
Definition at line 59 of file EulerAngles.h.
|
inline |
Construct given a pair of pointers or iterators defining the beginning and end of an array of three Scalars, to be treated as the angles phi, theta and psi.
Definition at line 69 of file EulerAngles.h.
|
inlineexplicit |
Create from any other supported rotation (see gv_detail::convert )
Definition at line 85 of file EulerAngles.h.
Distance between two rotations.
Definition at line 327 of file EulerAngles.h.
|
inline |
Get the axis and then the angle into data specified by an iterator begin.
Definition at line 179 of file EulerAngles.h.
|
inline |
Get the axis and then the angle into data specified by an iterator begin and another to the end of the desired data (4 past start).
Definition at line 167 of file EulerAngles.h.
|
inline |
Get the components phi, theta, psi into three Scalars.
Definition at line 196 of file EulerAngles.h.
|
inline |
Return inverse of a rotation.
Definition at line 302 of file EulerAngles.h.
|
inline |
Invert a rotation in place.
Definition at line 293 of file EulerAngles.h.
|
inline |
Definition at line 338 of file EulerAngles.h.
|
inline |
Rotation operation on a displacement vector in any coordinate system and tag.
Definition at line 238 of file EulerAngles.h.
|
inline |
Rotation operation on an arbitrary vector v.
Preconditions: v must implement methods x(), y(), and z() and the arbitrary vector type must have a constructor taking (x,y,z)
Definition at line 272 of file EulerAngles.h.
|
inline |
Rotation operation on a Lorentz vector in any 4D coordinate system.
Definition at line 258 of file EulerAngles.h.
|
inline |
Rotation operation on a position vector in any coordinate system.
Definition at line 247 of file EulerAngles.h.
|
inline |
Overload operator * for rotation on a vector.
Definition at line 283 of file EulerAngles.h.
EulerAngles ROOT::Math::EulerAngles::operator* | ( | const AxisAngle & | a | ) | const |
Definition at line 77 of file EulerAngles.cxx.
EulerAngles ROOT::Math::EulerAngles::operator* | ( | const EulerAngles & | e | ) | const |
Definition at line 82 of file EulerAngles.cxx.
EulerAngles ROOT::Math::EulerAngles::operator* | ( | const Quaternion & | q | ) | const |
Definition at line 86 of file EulerAngles.cxx.
EulerAngles ROOT::Math::EulerAngles::operator* | ( | const Rotation3D & | r | ) | const |
Multiply (combine) two rotations.
Definition at line 72 of file EulerAngles.cxx.
EulerAngles ROOT::Math::EulerAngles::operator* | ( | const RotationX & | rx | ) | const |
Definition at line 91 of file EulerAngles.cxx.
EulerAngles ROOT::Math::EulerAngles::operator* | ( | const RotationY & | ry | ) | const |
Definition at line 96 of file EulerAngles.cxx.
EulerAngles ROOT::Math::EulerAngles::operator* | ( | const RotationZ & | rz | ) | const |
Definition at line 101 of file EulerAngles.cxx.
|
inline |
Post-Multiply (on right) by another rotation : T = T*R.
Definition at line 321 of file EulerAngles.h.
|
inline |
Assign from any other rotation (see gv_detail::convert )
Definition at line 91 of file EulerAngles.h.
|
inline |
Equality/inequality operators.
Definition at line 332 of file EulerAngles.h.
|
inline |
Return Phi Euler angle.
Definition at line 208 of file EulerAngles.h.
|
inlinestaticprivate |
Definition at line 348 of file EulerAngles.h.
|
inline |
Return Psi Euler angle.
Definition at line 228 of file EulerAngles.h.
void ROOT::Math::EulerAngles::Rectify | ( | ) |
Re-adjust components place angles in canonical ranges.
Definition at line 37 of file EulerAngles.cxx.
|
inline |
Set the three Euler angles given a pair of pointers or iterators defining the beginning and end of an array of three Scalars.
Definition at line 153 of file EulerAngles.h.
Set the components phi, theta, psi based on three Scalars.
Definition at line 188 of file EulerAngles.h.
|
inline |
|
inline |
|
inline |
|
inline |
Return Theta Euler angle.
Definition at line 218 of file EulerAngles.h.
|
private |
Definition at line 344 of file EulerAngles.h.
|
private |
Definition at line 346 of file EulerAngles.h.
|
private |
Definition at line 345 of file EulerAngles.h.