Logo ROOT  
Reference Guide
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Loading...
Searching...
No Matches
TQuaternion Class Reference

Legacy Code

TQuaternion is a legacy interface: there will be no bug fixes nor new developments. Therefore it is not recommended to use it in new long-term production code. But, depending on the context, using TQuaternion might still be a valid solution. Consider using instead ROOT::Math::Quaternion.

Quaternion is a 4-component mathematic object quite convenient when dealing with space rotation (or reference frame transformation).

In short, think of quaternion Q as a 3-vector augmented by a real number. Q=Q|r+Q|V

Quaternion multiplication :

Quaternion multiplication is given by :

Q.Q=(Q|r+Q|V)(Q|r+Q|V)=[Q|rQ|rQ|VQ|V]+[Q|rQ|V+Q|rQ|V+Q|VXQ|V]

where :

  • Q|rQ|r is a real number product of real numbers
  • Q|VQ|V is a real number, scalar product of two 3-vectors
  • Q|rQ|V is a 3-vector, scaling of a 3-vector by a real number
  • Q|VXQ|V is a 3-vector, cross product of two 3-vectors

Thus, quaternion product is a generalization of real number product and product of a vector by a real number. Product of two pure vectors gives a quaternion whose real part is the opposite of scalar product and the vector part the cross product.

The conjugate of a quaternion Q=Q|r+Q|V is Q¯=Q|rQ|V

The magnitude of a quaternion Q is given by |Q|2=Q.Q¯=Q¯.Q=Q2|r+|Q|V|2

Therefore, the inverse of a quaternion is Q1=Q¯/|Q|2

"unit" quaternion is a quaternion of magnitude 1 : |Q|2=1. Unit quaternions are a subset of the quaternions set.

Quaternion and rotations :

A rotation of angle f around a given axis, is represented by a unit quaternion Q :

  • The axis of the rotation is given by the vector part of Q.
  • The ratio between the magnitude of the vector part and the real part of Q equals tan(f2).

In other words : Q=Q|r+Q|V=cos(f2)+sin(f2). (where u is a unit vector // to the rotation axis, cos(f2) is the real part, sin(f2) .u is the vector part) Note : The quaternion of identity is QI=cos(0)+sin(0)(AnyVector)=1 .

The composition of two rotations is described by the product of the two corresponding quaternions. As for 3-space rotations, quaternion multiplication is not commutative !

Q=Q1.Q2 represents the composition of the successive rotation R1 and R2 expressed in the current frame (the axis of rotation hold by Q2 is expressed in the frame as it is after R1 rotation). Q=Q2.Q1 represents the composition of the successive rotation R1 and R2 expressed in the initial reference frame.

The inverse of a rotation is a rotation about the same axis but of opposite angle, thus if Q is a unit quaternion, Q=cos(f2)+sin(f2).u=Q|r+Q|V , then : Q1=cos(f2)+sin(f2).u=cos(f2)sin(f2).u=Q|rQ|V is its inverse quaternion.

One verifies that : Q.Q1=Q1.Q=Q|rQ|r+Q|VQ|V+Q|rQ|VQ|rQ|V+Q|VXQ|V=Q|r+Q|V=1

The rotation of a vector V by the rotation described by a unit quaternion Q is obtained by the following operation : V=QVQ1, considering V as a quaternion whose real part is null.

Numeric computation considerations :

Numerically, the quaternion multiplication involves 12 additions and 16 multiplications. It is therefore faster than 3x3 matrixes multiplication involving 18 additions and 27 multiplications.

On the contrary, rotation of a vector by the above formula ( QVQ1 ) involves 18 additions and 24 multiplications, whereas multiplication of a 3-vector by a 3x3 matrix involves only 6 additions and 9 multiplications.

When dealing with numerous composition of space rotation, it is therefore faster to use quaternion product. On the other hand if a huge set of vectors must be rotated by a given quaternion, it is more optimized to convert the quaternion into a rotation matrix once, and then use that later to rotate the set of vectors.

More information :

http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation

http://en.wikipedia.org/wiki/Quaternion

This Class represents all quaternions (unit or non-unit) It possesses a Normalize() method to make a given quaternion unit The Rotate(TVector3&) and Rotation(TVector3&) methods can be used even for a non-unit quaternion, in that case, the proper normalization is applied to perform the rotation.

A TRotation constructor exists than takes a quaternion for parameter (even non-unit), in that cas the proper normalisation is applied.

Definition at line 11 of file TQuaternion.h.

Public Member Functions

 TQuaternion (const Double_t *)
 
 TQuaternion (const Float_t *)
 
 TQuaternion (const TQuaternion &)
 
 TQuaternion (const TVector3 &vector, Double_t real=0)
 
 TQuaternion (Double_t real=0, Double_t X=0, Double_t Y=0, Double_t Z=0)
 
 ~TQuaternion () override
 
TQuaternion Conjugate () const
 
TQuaternionDivideLeft (const TQuaternion &quaternion)
 left division
 
TQuaternionDivideLeft (const TVector3 &vector)
 left division
 
Double_t GetQAngle () const
 Get angle of quaternion (rad) N.B : this angle is half of the corresponding rotation angle.
 
void GetRXYZ (Double_t *carray) const
 
void GetRXYZ (Float_t *carray) const
 
TQuaternion Invert () const
 invert
 
TClassIsA () const override
 
TQuaternion LeftProduct (const TQuaternion &quaternion) const
 left product
 
TQuaternion LeftProduct (const TVector3 &vector) const
 left product
 
TQuaternion LeftQuotient (const TQuaternion &quaternion) const
 left quotient
 
TQuaternion LeftQuotient (const TVector3 &vector) const
 left quotient
 
TQuaternionMultiplyLeft (const TQuaternion &quaternion)
 left multiplication
 
TQuaternionMultiplyLeft (const TVector3 &vector)
 left multiplication
 
Double_t Norm () const
 
Double_t Norm2 () const
 
TQuaternionNormalize ()
 
Bool_t operator!= (const TQuaternion &) const
 
Bool_t operator!= (const TVector3 &) const
 
Bool_t operator!= (Double_t r) const
 
Double_toperator() (int)
 dereferencing operator
 
Double_t operator() (int) const
 dereferencing operator const
 
TQuaternion operator* (const TQuaternion &quaternion) const
 right product
 
TQuaternion operator* (const TVector3 &vector) const
 right product
 
TQuaternion operator* (Double_t real) const
 product of quaternion with a real
 
TQuaternionoperator*= (const TQuaternion &quaternion)
 right multiplication
 
TQuaternionoperator*= (const TVector3 &vector)
 right multiplication
 
TQuaternionoperator*= (Double_t real)
 
TQuaternion operator+ (const TQuaternion &quaternion) const
 
TQuaternion operator+ (const TVector3 &vector) const
 sum of quaternion with a real
 
TQuaternion operator+ (Double_t real) const
 sum of quaternion with a real
 
TQuaternionoperator+= (const TQuaternion &quaternion)
 
TQuaternionoperator+= (const TVector3 &vector)
 
TQuaternionoperator+= (Double_t real)
 
TQuaternion operator- () const
 
TQuaternion operator- (const TQuaternion &quaternion) const
 
TQuaternion operator- (const TVector3 &vector) const
 subtraction of real to quaternion
 
TQuaternion operator- (Double_t real) const
 subtraction of real to quaternion
 
TQuaternionoperator-= (const TQuaternion &quaternion)
 
TQuaternionoperator-= (const TVector3 &vector)
 
TQuaternionoperator-= (Double_t real)
 
TQuaternion operator/ (const TQuaternion &quaternion) const
 right quotient
 
TQuaternion operator/ (const TVector3 &vector) const
 right quotient
 
TQuaternion operator/ (Double_t real) const
 division by a real
 
TQuaternionoperator/= (const TQuaternion &quaternion)
 right division
 
TQuaternionoperator/= (const TVector3 &vector)
 right division
 
TQuaternionoperator/= (Double_t real)
 
TQuaternionoperator= (const TQuaternion &)
 
TQuaternionoperator= (const TVector3 &)
 
TQuaternionoperator= (Double_t r)
 
Bool_t operator== (const TQuaternion &) const
 
Bool_t operator== (const TVector3 &) const
 
Bool_t operator== (Double_t r) const
 
Double_toperator[] (int)
 
Double_t operator[] (int) const
 
void Print (Option_t *option="") const override
 Print Quaternion parameters.
 
Double_t QMag () const
 
Double_t QMag2 () const
 
void Rotate (TVector3 &vect) const
 rotate vect by current quaternion
 
TVector3 Rotation (const TVector3 &vect) const
 rotation of vect by current quaternion
 
TQuaternionSetAxisQAngle (TVector3 &v, Double_t QAngle)
 set quaternion from vector and angle (rad) quaternion is set as unitary N.B : this angle is half of the corresponding rotation angle
 
TQuaternionSetQAngle (Double_t angle)
 Set angle of quaternion (rad) - keep quaternion norm N.B : this angle is half of the corresponding rotation angle.
 
TQuaternionSetRV (Double_t r, TVector3 &vect)
 
TQuaternionSetRXYZ (Double_t r, Double_t x, Double_t y, Double_t z)
 
void Streamer (TBuffer &) override
 Stream an object of class TObject.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor.
 
 TObject (const TObject &object)
 TObject copy ctor.
 
virtual ~TObject ()
 TObject destructor.
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract.
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad.
 
virtual void Browse (TBrowser *b)
 Browse object. May be overridden for another default action.
 
ULong_t CheckedHash ()
 Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object.
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs.
 
virtual void Clear (Option_t *="")
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility.
 
virtual Int_t Compare (const TObject *obj) const
 Compare abstract method.
 
virtual void Copy (TObject &object) const
 Copy this to obj.
 
virtual void Delete (Option_t *option="")
 Delete this object.
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object.
 
virtual void Draw (Option_t *option="")
 Default Draw method for all objects.
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs.
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1).
 
virtual void Dump () const
 Dump contents of object on stdout.
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message.
 
virtual void Execute (const char *method, const char *params, Int_t *error=nullptr)
 Execute method on this object with the given parameter string, e.g.
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr)
 Execute method on this object with parameters stored in the TObjArray.
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py).
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message.
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes.
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes.
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object.
 
virtual const char * GetIconName () const
 Returns mime type name of object.
 
virtual const char * GetName () const
 Returns name of object.
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py).
 
virtual Option_tGetOption () const
 
virtual const char * GetTitle () const
 Returns title of object.
 
virtual UInt_t GetUniqueID () const
 Return the unique object id.
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out.
 
virtual ULong_t Hash () const
 Return hash value for this object.
 
Bool_t HasInconsistentHash () const
 Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e.
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message.
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname".
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl.
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas.
 
void InvertBit (UInt_t f)
 
Bool_t IsDestructed () const
 IsDestructed.
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory).
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
virtual Bool_t IsSortable () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
virtual void ls (Option_t *option="") const
 The ls function lists the contents of a class on stdout.
 
void MayNotUse (const char *method) const
 Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary).
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification (the base implementation is no-op).
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete.
 
void operator delete (void *ptr)
 Operator delete.
 
void operator delete (void *ptr, void *vp)
 Only called by placement new when throwing an exception.
 
void operator delete[] (void *ptr)
 Operator delete [].
 
void operator delete[] (void *ptr, void *vp)
 Only called by placement new[] when throwing an exception.
 
void * operator new (size_t sz)
 
void * operator new (size_t sz, void *vp)
 
void * operator new[] (size_t sz)
 
void * operator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator.
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself.
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list.
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory.
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list.
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename.
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out".
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f.
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object.
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message.
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked.
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message.
 
virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory.
 
virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory.
 

Static Public Member Functions

static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TObject
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static Longptr_t GetDtorOnly ()
 Return destructor only flag.
 
static Bool_t GetObjectStat ()
 Get status of object stat flag.
 
static void SetDtorOnly (void *obj)
 Set destructor only flag.
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable.
 

Public Attributes

Double_t fRealPart
 
TVector3 fVectorPart
 

Additional Inherited Members

- Public Types inherited from TObject
enum  {
  kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 ,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = (1ULL << ( 0 )) , kOverwrite = (1ULL << ( 1 )) , kWriteDelete = (1ULL << ( 2 )) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = (1ULL << ( 3 )) }
 
enum  EStatusBits {
  kCanDelete = (1ULL << ( 0 )) , kMustCleanup = (1ULL << ( 3 )) , kIsReferenced = (1ULL << ( 4 )) , kHasUUID = (1ULL << ( 5 )) ,
  kCannotPick = (1ULL << ( 6 )) , kNoContextMenu = (1ULL << ( 8 )) , kInvalidObject = (1ULL << ( 13 ))
}
 
- Protected Types inherited from TObject
enum  { kOnlyPrepStep = (1ULL << ( 3 )) }
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected).
 
void MakeZombie ()
 

#include <TQuaternion.h>

Inheritance diagram for TQuaternion:
[legend]

Constructor & Destructor Documentation

◆ TQuaternion() [1/5]

TQuaternion::TQuaternion ( Double_t real = 0,
Double_t X = 0,
Double_t Y = 0,
Double_t Z = 0 )

Definition at line 114 of file TQuaternion.cxx.

◆ TQuaternion() [2/5]

TQuaternion::TQuaternion ( const TVector3 & vector,
Double_t real = 0 )

Definition at line 105 of file TQuaternion.cxx.

◆ TQuaternion() [3/5]

TQuaternion::TQuaternion ( const Double_t * x0)

Definition at line 108 of file TQuaternion.cxx.

◆ TQuaternion() [4/5]

TQuaternion::TQuaternion ( const Float_t * x0)

Definition at line 111 of file TQuaternion.cxx.

◆ TQuaternion() [5/5]

TQuaternion::TQuaternion ( const TQuaternion & q)

Definition at line 102 of file TQuaternion.cxx.

◆ ~TQuaternion()

TQuaternion::~TQuaternion ( )
override

Definition at line 117 of file TQuaternion.cxx.

Member Function Documentation

◆ Class()

static TClass * TQuaternion::Class ( )
static
Returns
TClass describing this class

◆ Class_Name()

static const char * TQuaternion::Class_Name ( )
static
Returns
Name of this class

◆ Class_Version()

static constexpr Version_t TQuaternion::Class_Version ( )
inlinestaticconstexpr
Returns
Version of this class

Definition at line 113 of file TQuaternion.h.

◆ Conjugate()

TQuaternion TQuaternion::Conjugate ( ) const
inline

Definition at line 283 of file TQuaternion.h.

◆ DeclFileName()

static const char * TQuaternion::DeclFileName ( )
inlinestatic
Returns
Name of the file containing the class declaration

Definition at line 113 of file TQuaternion.h.

◆ DivideLeft() [1/2]

TQuaternion & TQuaternion::DivideLeft ( const TQuaternion & quaternion)

left division

Definition at line 413 of file TQuaternion.cxx.

◆ DivideLeft() [2/2]

TQuaternion & TQuaternion::DivideLeft ( const TVector3 & vector)

left division

Definition at line 289 of file TQuaternion.cxx.

◆ GetQAngle()

Double_t TQuaternion::GetQAngle ( ) const

Get angle of quaternion (rad) N.B : this angle is half of the corresponding rotation angle.

Definition at line 156 of file TQuaternion.cxx.

◆ GetRXYZ() [1/2]

void TQuaternion::GetRXYZ ( Double_t * carray) const
inline

Definition at line 131 of file TQuaternion.h.

◆ GetRXYZ() [2/2]

void TQuaternion::GetRXYZ ( Float_t * carray) const
inline

Definition at line 136 of file TQuaternion.h.

◆ Invert()

TQuaternion TQuaternion::Invert ( ) const

invert

Definition at line 480 of file TQuaternion.cxx.

◆ IsA()

TClass * TQuaternion::IsA ( ) const
inlineoverridevirtual
Returns
TClass describing current object

Reimplemented from TObject.

Definition at line 113 of file TQuaternion.h.

◆ LeftProduct() [1/2]

TQuaternion TQuaternion::LeftProduct ( const TQuaternion & quaternion) const

left product

Definition at line 395 of file TQuaternion.cxx.

◆ LeftProduct() [2/2]

TQuaternion TQuaternion::LeftProduct ( const TVector3 & vector) const

left product

Definition at line 275 of file TQuaternion.cxx.

◆ LeftQuotient() [1/2]

TQuaternion TQuaternion::LeftQuotient ( const TQuaternion & quaternion) const

left quotient

Definition at line 444 of file TQuaternion.cxx.

◆ LeftQuotient() [2/2]

TQuaternion TQuaternion::LeftQuotient ( const TVector3 & vector) const

left quotient

Definition at line 319 of file TQuaternion.cxx.

◆ MultiplyLeft() [1/2]

TQuaternion & TQuaternion::MultiplyLeft ( const TQuaternion & quaternion)

left multiplication

Definition at line 379 of file TQuaternion.cxx.

◆ MultiplyLeft() [2/2]

TQuaternion & TQuaternion::MultiplyLeft ( const TVector3 & vector)

left multiplication

Definition at line 251 of file TQuaternion.cxx.

◆ Norm()

Double_t TQuaternion::Norm ( ) const
inline

Definition at line 265 of file TQuaternion.h.

◆ Norm2()

Double_t TQuaternion::Norm2 ( ) const
inline

Definition at line 269 of file TQuaternion.h.

◆ Normalize()

TQuaternion & TQuaternion::Normalize ( )
inline

Definition at line 273 of file TQuaternion.h.

◆ operator!=() [1/3]

Bool_t TQuaternion::operator!= ( const TQuaternion & Q) const
inline

Definition at line 230 of file TQuaternion.h.

◆ operator!=() [2/3]

Bool_t TQuaternion::operator!= ( const TVector3 & V) const
inline

Definition at line 199 of file TQuaternion.h.

◆ operator!=() [3/3]

Bool_t TQuaternion::operator!= ( Double_t r) const
inline

Definition at line 150 of file TQuaternion.h.

◆ operator()() [1/2]

Double_t & TQuaternion::operator() ( int i)

dereferencing operator

Definition at line 139 of file TQuaternion.cxx.

◆ operator()() [2/2]

Double_t TQuaternion::operator() ( int i) const

dereferencing operator const

Definition at line 122 of file TQuaternion.cxx.

◆ operator*() [1/3]

TQuaternion TQuaternion::operator* ( const TQuaternion & quaternion) const

right product

Definition at line 404 of file TQuaternion.cxx.

◆ operator*() [2/3]

TQuaternion TQuaternion::operator* ( const TVector3 & vector) const

right product

Definition at line 282 of file TQuaternion.cxx.

◆ operator*() [3/3]

TQuaternion TQuaternion::operator* ( Double_t real) const

product of quaternion with a real

Definition at line 209 of file TQuaternion.cxx.

◆ operator*=() [1/3]

TQuaternion & TQuaternion::operator*= ( const TQuaternion & quaternion)

right multiplication

Definition at line 364 of file TQuaternion.cxx.

◆ operator*=() [2/3]

TQuaternion & TQuaternion::operator*= ( const TVector3 & vector)

right multiplication

Definition at line 263 of file TQuaternion.cxx.

◆ operator*=() [3/3]

TQuaternion & TQuaternion::operator*= ( Double_t real)
inline

Definition at line 170 of file TQuaternion.h.

◆ operator+() [1/3]

TQuaternion TQuaternion::operator+ ( const TQuaternion & quaternion) const
inline

Definition at line 254 of file TQuaternion.h.

◆ operator+() [2/3]

TQuaternion TQuaternion::operator+ ( const TVector3 & vector) const

sum of quaternion with a real

Definition at line 237 of file TQuaternion.cxx.

◆ operator+() [3/3]

TQuaternion TQuaternion::operator+ ( Double_t real) const

sum of quaternion with a real

Definition at line 195 of file TQuaternion.cxx.

◆ operator+=() [1/3]

TQuaternion & TQuaternion::operator+= ( const TQuaternion & quaternion)
inline

Definition at line 242 of file TQuaternion.h.

◆ operator+=() [2/3]

TQuaternion & TQuaternion::operator+= ( const TVector3 & vector)
inline

Definition at line 209 of file TQuaternion.h.

◆ operator+=() [3/3]

TQuaternion & TQuaternion::operator+= ( Double_t real)
inline

Definition at line 160 of file TQuaternion.h.

◆ operator-() [1/4]

TQuaternion TQuaternion::operator- ( ) const
inline

Definition at line 279 of file TQuaternion.h.

◆ operator-() [2/4]

TQuaternion TQuaternion::operator- ( const TQuaternion & quaternion) const
inline

Definition at line 259 of file TQuaternion.h.

◆ operator-() [3/4]

TQuaternion TQuaternion::operator- ( const TVector3 & vector) const

subtraction of real to quaternion

Definition at line 244 of file TQuaternion.cxx.

◆ operator-() [4/4]

TQuaternion TQuaternion::operator- ( Double_t real) const

subtraction of real to quaternion

Definition at line 202 of file TQuaternion.cxx.

◆ operator-=() [1/3]

TQuaternion & TQuaternion::operator-= ( const TQuaternion & quaternion)
inline

Definition at line 248 of file TQuaternion.h.

◆ operator-=() [2/3]

TQuaternion & TQuaternion::operator-= ( const TVector3 & vector)
inline

Definition at line 214 of file TQuaternion.h.

◆ operator-=() [3/3]

TQuaternion & TQuaternion::operator-= ( Double_t real)
inline

Definition at line 165 of file TQuaternion.h.

◆ operator/() [1/3]

TQuaternion TQuaternion::operator/ ( const TQuaternion & quaternion) const

right quotient

Definition at line 462 of file TQuaternion.cxx.

◆ operator/() [2/3]

TQuaternion TQuaternion::operator/ ( const TVector3 & vector) const

right quotient

Definition at line 335 of file TQuaternion.cxx.

◆ operator/() [3/3]

TQuaternion TQuaternion::operator/ ( Double_t real) const

division by a real

Definition at line 217 of file TQuaternion.cxx.

◆ operator/=() [1/3]

TQuaternion & TQuaternion::operator/= ( const TQuaternion & quaternion)

right division

Definition at line 428 of file TQuaternion.cxx.

◆ operator/=() [2/3]

TQuaternion & TQuaternion::operator/= ( const TVector3 & vector)

right division

Definition at line 304 of file TQuaternion.cxx.

◆ operator/=() [3/3]

TQuaternion & TQuaternion::operator/= ( Double_t real)
inline

Definition at line 176 of file TQuaternion.h.

◆ operator=() [1/3]

TQuaternion & TQuaternion::operator= ( const TQuaternion & quat)
inline

Definition at line 234 of file TQuaternion.h.

◆ operator=() [2/3]

TQuaternion & TQuaternion::operator= ( const TVector3 & vect)
inline

Definition at line 203 of file TQuaternion.h.

◆ operator=() [3/3]

TQuaternion & TQuaternion::operator= ( Double_t r)
inline

Definition at line 154 of file TQuaternion.h.

◆ operator==() [1/3]

Bool_t TQuaternion::operator== ( const TQuaternion & Q) const
inline

Definition at line 226 of file TQuaternion.h.

◆ operator==() [2/3]

Bool_t TQuaternion::operator== ( const TVector3 & V) const
inline

Definition at line 195 of file TQuaternion.h.

◆ operator==() [3/3]

Bool_t TQuaternion::operator== ( Double_t r) const
inline

Definition at line 146 of file TQuaternion.h.

◆ operator[]() [1/2]

Double_t & TQuaternion::operator[] ( int i)
inline

Definition at line 141 of file TQuaternion.h.

◆ operator[]() [2/2]

Double_t TQuaternion::operator[] ( int i) const
inline

Definition at line 142 of file TQuaternion.h.

◆ Print()

void TQuaternion::Print ( Option_t * option = "") const
overridevirtual

Print Quaternion parameters.

Reimplemented from TObject.

Definition at line 528 of file TQuaternion.cxx.

◆ QMag()

Double_t TQuaternion::QMag ( ) const
inline

Definition at line 99 of file TQuaternion.h.

◆ QMag2()

Double_t TQuaternion::QMag2 ( ) const
inline

Definition at line 100 of file TQuaternion.h.

◆ Rotate()

void TQuaternion::Rotate ( TVector3 & vect) const

rotate vect by current quaternion

Definition at line 494 of file TQuaternion.cxx.

◆ Rotation()

TVector3 TQuaternion::Rotation ( const TVector3 & vect) const

rotation of vect by current quaternion

Definition at line 501 of file TQuaternion.cxx.

◆ SetAxisQAngle()

TQuaternion & 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 the corresponding rotation angle

Definition at line 180 of file TQuaternion.cxx.

◆ SetQAngle()

TQuaternion & TQuaternion::SetQAngle ( Double_t angle)

Set angle of quaternion (rad) - keep quaternion norm N.B : this angle is half of the corresponding rotation angle.

Definition at line 166 of file TQuaternion.cxx.

◆ SetRV()

TQuaternion & TQuaternion::SetRV ( Double_t r,
TVector3 & vect )
inline

Definition at line 125 of file TQuaternion.h.

◆ SetRXYZ()

TQuaternion & TQuaternion::SetRXYZ ( Double_t r,
Double_t x,
Double_t y,
Double_t z )
inline

Definition at line 119 of file TQuaternion.h.

◆ Streamer()

void TQuaternion::Streamer ( TBuffer & R__b)
overridevirtual

Stream an object of class TObject.

Reimplemented from TObject.

◆ StreamerNVirtual()

void TQuaternion::StreamerNVirtual ( TBuffer & ClassDef_StreamerNVirtual_b)
inline

Definition at line 113 of file TQuaternion.h.

Member Data Documentation

◆ fRealPart

Double_t TQuaternion::fRealPart

Definition at line 110 of file TQuaternion.h.

◆ fVectorPart

TVector3 TQuaternion::fVectorPart

Definition at line 111 of file TQuaternion.h.

Libraries for TQuaternion:

The documentation for this class was generated from the following files: