class ROOT::Math::RotationZYX


Rotation class with the (3D) rotation represented by
angles describing first a rotation of
an angle phi (yaw) about the  Z axis,
followed by a rotation of an angle theta (pitch) about the new Y' axis,
followed by a third rotation of an angle psi (roll) about the final X'' axis.
This is  sometimes referred to as the Euler 321 sequence.
It has not to be confused with the typical Goldstein definition of the Euler Angles
(Z-X-Z or 313 sequence) which is used by the ROOT::Math::EulerAngles class.


@ingroup GenVector

Function Members (Methods)

public:
~RotationZYX()
voidGetComponents(double* begin) const
voidGetComponents(ROOT::Math::RotationZYX::Scalar& phi, ROOT::Math::RotationZYX::Scalar& theta, ROOT::Math::RotationZYX::Scalar& psi) const
ROOT::Math::RotationZYXInverse() const
voidInvert()
booloperator!=(const ROOT::Math::RotationZYX& rhs) const
ROOT::Math::RotationZYXoperator*(const ROOT::Math::RotationZYX& e) const
ROOT::Math::RotationZYXoperator*(const ROOT::Math::Rotation3D& r) const
ROOT::Math::RotationZYXoperator*(const ROOT::Math::AxisAngle& a) const
ROOT::Math::RotationZYXoperator*(const ROOT::Math::Quaternion& q) const
ROOT::Math::RotationZYXoperator*(const ROOT::Math::EulerAngles& q) const
ROOT::Math::RotationZYXoperator*(const ROOT::Math::RotationX& rx) const
ROOT::Math::RotationZYXoperator*(const ROOT::Math::RotationY& ry) const
ROOT::Math::RotationZYXoperator*(const ROOT::Math::RotationZ& rz) const
ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double>,ROOT::Math::DefaultCoordinateSystemTag>operator*(const ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double>,ROOT::Math::DefaultCoordinateSystemTag>& v) const
ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double>,ROOT::Math::DefaultCoordinateSystemTag>operator*(const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double>,ROOT::Math::DefaultCoordinateSystemTag>& v) const
ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> >operator*(const ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> >& v) const
ROOT::Math::RotationZYX&operator=(ROOT::Math::Rotation3D const& r)
ROOT::Math::RotationZYX&operator=(ROOT::Math::RotationX const& r)
ROOT::Math::RotationZYX&operator=(ROOT::Math::RotationY const& r)
ROOT::Math::RotationZYX&operator=(ROOT::Math::RotationZ const& r)
ROOT::Math::RotationZYX&operator=(const ROOT::Math::RotationZYX&)
booloperator==(const ROOT::Math::RotationZYX& rhs) const
ROOT::Math::RotationZYX::ScalarPhi() const
ROOT::Math::RotationZYX::ScalarPsi() const
voidRectify()
ROOT::Math::RotationZYXRotationZYX()
ROOT::Math::RotationZYXRotationZYX(const ROOT::Math::RotationZYX&)
ROOT::Math::RotationZYXRotationZYX(ROOT::Math::RotationZYX::Scalar phi, ROOT::Math::RotationZYX::Scalar theta, ROOT::Math::RotationZYX::Scalar psi)
voidSetComponents(double* begin, double* end)
voidSetComponents(ROOT::Math::RotationZYX::Scalar phi, ROOT::Math::RotationZYX::Scalar theta, ROOT::Math::RotationZYX::Scalar psi)
voidSetPhi(ROOT::Math::RotationZYX::Scalar phi)
voidSetPsi(ROOT::Math::RotationZYX::Scalar psi)
voidSetTheta(ROOT::Math::RotationZYX::Scalar theta)
ROOT::Math::RotationZYX::ScalarTheta() const
private:
static doublePi()

Data Members

private:
doublefPhiZ rotation angle (yaw) defined in (-PI,PI]
doublefPsiX'' rotation angle (roll) defined in (-PI,PI]
doublefThetaY' rotation angle (pitch) defined in [-PI/2,PI/2]

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

RotationZYX(const ROOT::Math::RotationZYX& )
 ========== Constructors and Assignment =====================

Default constructor

{ }
RotationZYX(ROOT::Math::RotationZYX::Scalar phi, ROOT::Math::RotationZYX::Scalar theta, ROOT::Math::RotationZYX::Scalar psi)
Constructor from phi, theta and psi

{Rectify();}
RotationZYX(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.

{ SetComponents(begin,end); }
void Rectify()
 The compiler-generated copy ctor, copy assignment, and dtor are OK.

Re-adjust components place angles in canonical ranges

RotationZYX & operator=( OtherRotation const & r )
Assign from another supported rotation type (see gv_detail::convert )

void SetComponents(double* begin, double* end)
 ======== Components ==============

Set the three Euler angles given a pair of pointers or iterators
defining the beginning and end of an array of three Scalars.

void GetComponents(IT begin, IT end)
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(double* begin) const
Get the axis and then the angle into data specified by an iterator begin

void SetComponents(ROOT::Math::RotationZYX::Scalar phi, ROOT::Math::RotationZYX::Scalar theta, ROOT::Math::RotationZYX::Scalar psi)
Set the components phi, theta, psi based on three Scalars.

void SetPhi(ROOT::Math::RotationZYX::Scalar phi)
Set Phi angle (Z rotation angle)

{ fPhi=phi; Rectify(); }
Scalar Phi()
Return Phi angle (Z rotation angle)

{ return fPhi; }
void SetTheta(ROOT::Math::RotationZYX::Scalar theta)
Set Theta angle (Y' rotation angle)

{ fTheta=theta; Rectify(); }
Scalar Theta()
Return Theta angle (Y' rotation angle)

{ return fTheta; }
void SetPsi(ROOT::Math::RotationZYX::Scalar psi)
Set Psi angle (X'' rotation angle)

{ fPsi=psi; Rectify(); }
Scalar Psi()
Return Psi angle (X'' rotation angle)

{ return fPsi; }
AVector operator*(const AVector & v)
Overload operator * for rotation on a vector

void Invert()
Invert a rotation in place

RotationZYX Inverse()
Return inverse of a rotation

return ! operator==(const ROOT::Math::RotationZYX& rhs) const
double Pi()
{ return M_PI; }
RotationZYX operator*(RotationX const & r1, RotationZYX const & r2)
Multiplication of an axial rotation by an AxisAngle

RotationZYX operator*(RotationY const & r1, RotationZYX const & r2)
RotationZYX operator*(RotationZ const & r1, RotationZYX const & r2)

Last update: root/mathcore:$Id: RotationZYX.h 21503 2007-12-19 17:34:54Z moneta $
Copyright (c) 2007 , LCG ROOT MathLib Team *

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.