4#ifndef ROOT_TQuaternion
5#define ROOT_TQuaternion
183 Error(
"operator/=()(Double_t)",
"bad value (%f) ignored",real);
#define ClassDef(name, id)
TQuaternion operator*(Double_t r, const TQuaternion &q)
TQuaternion operator+(Double_t r, const TQuaternion &q)
TQuaternion operator-(Double_t r, const TQuaternion &q)
TQuaternion operator/(Double_t r, const TQuaternion &q)
Mother of all ROOT objects.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Quaternion is a 4-component mathematic object quite convenient when dealing with space rotation (or r...
Bool_t operator==(Double_t r) const
void GetRXYZ(Double_t *carray) const
TQuaternion & MultiplyLeft(const TVector3 &vector)
left multiplication
TQuaternion LeftQuotient(const TVector3 &vector) const
left quotient
TQuaternion operator*(Double_t real) const
product of quaternion with a real
TQuaternion(Double_t real=0, Double_t X=0, Double_t Y=0, Double_t Z=0)
TQuaternion & operator=(Double_t r)
TQuaternion & operator-=(Double_t real)
TQuaternion & SetRV(Double_t r, TVector3 &vect)
void Rotate(TVector3 &vect) const
rotate vect by current quaternion
Double_t operator()(int) const
dereferencing operator const
TQuaternion & DivideLeft(const TVector3 &vector)
left division
Bool_t operator!=(Double_t r) const
void Print(Option_t *option="") const
Print Quaternion parameters.
TQuaternion operator+(Double_t real) const
sum of quaternion with a real
TQuaternion LeftProduct(const TVector3 &vector) const
left product
TQuaternion & operator/=(Double_t real)
TQuaternion & operator*=(Double_t real)
Double_t operator[](int) const
TQuaternion & operator+=(Double_t real)
TQuaternion & SetQAngle(Double_t angle)
Set angle of quaternion (rad) - keep quaternion norm N.B : this angle is half of the corresponding ro...
TQuaternion operator/(Double_t real) const
division by a real
TQuaternion Invert() const
invert
TQuaternion & Normalize()
TVector3 Rotation(const TVector3 &vect) const
rotation of vect by current quaternion
TQuaternion operator-() const
TQuaternion & SetAxisQAngle(TVector3 &v, Double_t QAngle)
set quaternion from vector and angle (rad) quaternion is set as unitary N.B : this angle is half of t...
TQuaternion & SetRXYZ(Double_t r, Double_t x, Double_t y, Double_t z)
TQuaternion Conjugate() const
Double_t GetQAngle() const
Get angle of quaternion (rad) N.B : this angle is half of the corresponding rotation angle.
TVector3 is a general three vector class, which can be used for the description of different vectors ...
void SetXYZ(Double_t x, Double_t y, Double_t z)
void GetXYZ(Double_t *carray) const
Double_t Sqrt(Double_t x)