library: libPhysics
#include "TRotation.h"

TRotation


class description - header file - source file - inheritance tree (.pdf)

class TRotation : public TObject

Inheritance Chart:
TObject
<-
TRotation

    protected:
TRotation(Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t) public:
TRotation() TRotation(const TRotation&) TRotation(const TQuaternion&) TRotation operator*(const TRotation&) const TRotation Inverse() const virtual ~TRotation() void AngleAxis(Double_t&, TVector3&) const static TClass* Class() Double_t GetXPhi() const Double_t GetXPsi() const Double_t GetXTheta() const Double_t GetYPhi() const Double_t GetYPsi() const Double_t GetYTheta() const TRotation& Invert() virtual TClass* IsA() const Bool_t IsIdentity() const void MakeBasis(TVector3& xAxis, TVector3& yAxis, TVector3& zAxis) const Bool_t operator!=(const TRotation& m) const Double_t operator()(int, int) const TVector3 operator*(const TVector3& p) const TRotation& operator*=(const TRotation& m) TRotation& operator=(const TRotation& m) Bool_t operator==(const TRotation& m) const TRotation::TRotationRow operator[](int i) const Double_t PhiX() const Double_t PhiY() const Double_t PhiZ() const TRotation& Rotate(Double_t, const TVector3&) TRotation& Rotate(Double_t psi, const TVector3* p) TRotation& RotateAxes(const TVector3& newX, const TVector3& newY, const TVector3& newZ) TRotation& RotateX(Double_t) TRotation& RotateXEulerAngles(Double_t phi, Double_t theta, Double_t psi) TRotation& RotateY(Double_t) TRotation& RotateYEulerAngles(Double_t phi, Double_t theta, Double_t psi) TRotation& RotateZ(Double_t) TRotation& SetToIdentity() TRotation& SetXAxis(const TVector3& axis) TRotation& SetXAxis(const TVector3& axis, const TVector3& xyPlane) TRotation& SetXEulerAngles(Double_t phi, Double_t theta, Double_t psi) void SetXPhi(Double_t) void SetXPsi(Double_t) void SetXTheta(Double_t) TRotation& SetYAxis(const TVector3& axis) TRotation& SetYAxis(const TVector3& axis, const TVector3& yzPlane) TRotation& SetYEulerAngles(Double_t phi, Double_t theta, Double_t psi) void SetYPhi(Double_t) void SetYPsi(Double_t) void SetYTheta(Double_t) TRotation& SetZAxis(const TVector3& axis) TRotation& SetZAxis(const TVector3& axis, const TVector3& zxPlane) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) Double_t ThetaX() const Double_t ThetaY() const Double_t ThetaZ() const TRotation& Transform(const TRotation& m) Double_t XX() const Double_t XY() const Double_t XZ() const Double_t YX() const Double_t YY() const Double_t YZ() const Double_t ZX() const Double_t ZY() const Double_t ZZ() const

Data Members


    protected:
Double_t fxx Double_t fxy Double_t fxz Double_t fyx Double_t fyy Double_t fyz Double_t fzx Double_t fzy Double_t fzz

Class Description

TRotation()
TRotation(const TRotation & m)
TRotation(Double_t mxx, Double_t mxy, Double_t mxz, Double_t myx, Double_t myy, Double_t myz, Double_t mzx, Double_t mzy, Double_t mzz)
TRotation(const TQuaternion & Q)
 Constructor for a rotation based on a Quaternion
 if magnitude of quaternion is null, creates identity rotation
 if quaternion is non-unit, creates rotation corresponding to the normalized (unit) quaternion
TRotation & Rotate(Double_t a, const TVector3& axis)
rotate along an axis
TRotation & RotateX(Double_t a)
rotate around x
TRotation & RotateY(Double_t a)
rotate around y
TRotation & RotateZ(Double_t a)
rotate around z
TRotation & RotateAxes(const TVector3 &newX, const TVector3 &newY, const TVector3 &newZ)
rotate axes
Double_t PhiX()
return Phi
Double_t PhiY()
return Phi
Double_t PhiZ()
return Phi
Double_t ThetaX()
return Phi
Double_t ThetaY()
return Theta
Double_t ThetaZ()
return Theta
void AngleAxis(Double_t &angle, TVector3 &axis)
rotation defined by an angle and a vector
TRotation & SetXEulerAngles(Double_t phi, Double_t theta, Double_t psi)
 Rotate using the x-convention (Landau and Lifshitz, Goldstein, &c) by
 doing the explicit rotations.  This is slightly less efficient than
 directly applying the rotation, but makes the code much clearer.  My
 presumption is that this code is not going to be a speed bottle neck.
TRotation & SetYEulerAngles(Double_t phi, Double_t theta, Double_t psi)
 Rotate using the y-convention.
TRotation & RotateXEulerAngles(Double_t phi, Double_t theta, Double_t psi)
 Rotate using the x-convention.
TRotation & RotateYEulerAngles(Double_t phi, Double_t theta, Double_t psi)
 Rotate using the y-convention.
void SetXPhi(Double_t phi)
set XPhi
void SetXTheta(Double_t theta)
set XTheta
void SetXPsi(Double_t psi)
set XPsi
void SetYPhi(Double_t phi)
set YPhi
void SetYTheta(Double_t theta)
set YTheta
void SetYPsi(Double_t psi)
set YPsi
Double_t GetXPhi(void)
return phi angle
Double_t GetYPhi(void)
return YPhi
Double_t GetXTheta(void)
return XTheta
Double_t GetYTheta(void)
return YTheta
Double_t GetXPsi(void)
Get psi angle
Double_t GetYPsi(void)
return YPsi
TRotation & SetXAxis(const TVector3& axis, const TVector3& xyPlane)
set X axis
TRotation & SetXAxis(const TVector3& axis)
set X axis
TRotation & SetYAxis(const TVector3& axis, const TVector3& yzPlane)
set Y axis
TRotation & SetYAxis(const TVector3& axis)
set Y axis
TRotation & SetZAxis(const TVector3& axis, const TVector3& zxPlane)
set Y axis
TRotation & SetZAxis(const TVector3& axis)
set Z axis
void MakeBasis(TVector3& xAxis, TVector3& yAxis, TVector3& zAxis)
 Make the zAxis into a unit variable.















virtual ~TRotation()
Double_t XX()
Double_t XY()
Double_t XZ()
Double_t YX()
Double_t YY()
Double_t YZ()
Double_t ZX()
Double_t ZY()
Double_t ZZ()
Bool_t IsIdentity()
TRotation & Transform(const TRotation &)
TRotation Inverse()
TRotation & Invert()
TRotation & Rotate(Double_t, const TVector3 &)
TRotation & SetToIdentity()

Author: Peter Malzacher 19/06/99
Last update: root/physics:$Name: $:$Id: TRotation.cxx,v 1.11 2006/05/17 06:49:59 brun Exp $


ROOT page - Class index - Class Hierarchy - Top of the page

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.