ROOT  6.07/01
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
TEveTrans Class Reference

TEveTrans is a 4x4 transformation matrix for homogeneous coordinates stored internally in a column-major order to allow direct usage by GL.

The element type is Double32_t as statically the floats would be precise enough but continuous operations on the matrix must retain precision of column vectors.

Cartan angles are stored in fA[1-3] (+z, -y, +x). They are recalculated on demand.

Direct element access (first two should be used with care):

Column-vector access: USet Get/SetBaseVec(), Get/SetPos() and Arr[XYZT]() methods.

For all methods taking the matrix indices: 1->X, 2->Y, 3->Z; 4->Position (if applicable). 0 reserved for time.

Shorthands in method-names: LF ~ LocalFrame; PF ~ ParentFrame; IP ~ InPlace

Definition at line 26 of file TEveTrans.h.

Public Member Functions

 TEveTrans ()
 Default constructor. More...
 
 TEveTrans (const TEveTrans &t)
 Constructor. More...
 
 TEveTrans (const Double_t arr[16])
 Constructor. More...
 
 TEveTrans (const Float_t arr[16])
 Constructor. More...
 
virtual ~TEveTrans ()
 
void UnitTrans ()
 Reset matrix to unity. More...
 
void ZeroTrans (Double_t w=1.0)
 Reset matrix to zero, only the perspective scaling is set to w (1 by default). More...
 
void UnitRot ()
 Reset rotation part of the matrix to unity. More...
 
void SetTrans (const TEveTrans &t, Bool_t copyAngles=kTRUE)
 Set matrix from another,. More...
 
void SetFromArray (const Double_t arr[16])
 Set matrix from Double_t array. More...
 
void SetFromArray (const Float_t arr[16])
 Set matrix from Float_t array. More...
 
TEveTransoperator= (const TEveTrans &t)
 
void SetupRotation (Int_t i, Int_t j, Double_t f)
 Setup the matrix as an elementary rotation. More...
 
void SetupFromToVec (const TEveVector &from, const TEveVector &to)
 A function for creating a rotation matrix that rotates a vector called "from" into another vector called "to". More...
 
void OrtoNorm3 ()
 Orto-norm columns 1 to 3. More...
 
Double_t Invert ()
 Invert matrix. More...
 
void MultLeft (const TEveTrans &t)
 Multiply from left: this = t * this. More...
 
void MultRight (const TEveTrans &t)
 Multiply from right: this = this * t. More...
 
void operator*= (const TEveTrans &t)
 
void TransposeRotationPart ()
 Transpose 3x3 rotation sub-matrix. More...
 
TEveTrans operator* (const TEveTrans &t)
 Copy, multiply from right and return product. More...
 
void MoveLF (Int_t ai, Double_t amount)
 Move in local-frame along axis with index ai. More...
 
void Move3LF (Double_t x, Double_t y, Double_t z)
 General move in local-frame. More...
 
void RotateLF (Int_t i1, Int_t i2, Double_t amount)
 Rotate in local frame. Does optimised version of MultRight. More...
 
void MovePF (Int_t ai, Double_t amount)
 Move in parent-frame along axis index ai. More...
 
void Move3PF (Double_t x, Double_t y, Double_t z)
 General move in parent-frame. More...
 
void RotatePF (Int_t i1, Int_t i2, Double_t amount)
 Rotate in parent frame. Does optimised version of MultLeft. More...
 
void Move (const TEveTrans &a, Int_t ai, Double_t amount)
 Move in a's coord-system along axis-index ai. More...
 
void Move3 (const TEveTrans &a, Double_t x, Double_t y, Double_t z)
 General move in a's coord-system. More...
 
void Rotate (const TEveTrans &a, Int_t i1, Int_t i2, Double_t amount)
 Rotate in a's coord-system, rotating base vector with index i1 into i2. More...
 
Double_tArray ()
 
const Double_tArray () const
 
Double_tArrX ()
 
const Double_tArrX () const
 
Double_tArrY ()
 
const Double_tArrY () const
 
Double_tArrZ ()
 
const Double_tArrZ () const
 
Double_tArrT ()
 
const Double_tArrT () const
 
Double_t operator[] (Int_t i) const
 
Double_toperator[] (Int_t i)
 
Double_t CM (Int_t i, Int_t j) const
 
Double_tCM (Int_t i, Int_t j)
 
Double_t operator() (Int_t i, Int_t j) const
 
Double_toperator() (Int_t i, Int_t j)
 
void SetBaseVec (Int_t b, Double_t x, Double_t y, Double_t z)
 Set base-vector with index b. More...
 
void SetBaseVec (Int_t b, const TVector3 &v)
 Set base-vector with index b. More...
 
TVector3 GetBaseVec (Int_t b) const
 Get base-vector with index b. More...
 
void GetBaseVec (Int_t b, TVector3 &v) const
 
void SetPos (Double_t x, Double_t y, Double_t z)
 Set position (base-vec 4). More...
 
void SetPos (Double_t *x)
 
void SetPos (Float_t *x)
 
void SetPos (const TEveTrans &t)
 
void GetPos (Double_t &x, Double_t &y, Double_t &z) const
 Get position (base-vec 4). More...
 
void GetPos (Double_t *x) const
 
void GetPos (Float_t *x) const
 
void GetPos (TVector3 &v) const
 
TVector3 GetPos () const
 
void SetRotByAngles (Float_t a1, Float_t a2, Float_t a3)
 
void SetRotByAnyAngles (Float_t a1, Float_t a2, Float_t a3, const char *pat)
 Sets Rotation part as given by angles a1, a1, a3 and pattern pat. More...
 
void GetRotAngles (Float_t *x) const
 Get Cardan rotation angles (pattern xYz above). More...
 
void Scale (Double_t sx, Double_t sy, Double_t sz)
 Scale matrix. Translation part untouched. More...
 
Double_t Unscale ()
 Remove scaling, make all base vectors of unit length. More...
 
void Unscale (Double_t &sx, Double_t &sy, Double_t &sz)
 Remove scaling, make all base vectors of unit length. More...
 
void GetScale (Double_t &sx, Double_t &sy, Double_t &sz) const
 Deduce scales from sizes of base vectors. More...
 
void SetScale (Double_t sx, Double_t sy, Double_t sz)
 Set scaling. More...
 
void SetScaleX (Double_t sx)
 Change x scaling. More...
 
void SetScaleY (Double_t sy)
 Change y scaling. More...
 
void SetScaleZ (Double_t sz)
 Change z scaling. More...
 
void MultiplyIP (TVector3 &v, Double_t w=1) const
 Multiply vector in-place. More...
 
void MultiplyIP (Double_t *v, Double_t w=1) const
 Multiply vector in-place. More...
 
void MultiplyIP (Float_t *v, Double_t w=1) const
 Multiply vector in-place. More...
 
TVector3 Multiply (const TVector3 &v, Double_t w=1) const
 Multiply vector and return it. More...
 
void Multiply (const Double_t *vin, Double_t *vout, Double_t w=1) const
 Multiply vector and fill output array vout. More...
 
void RotateIP (TVector3 &v) const
 Rotate vector in-place. Translation is NOT applied. More...
 
void RotateIP (Double_t *v) const
 Rotate vector in-place. Translation is NOT applied. More...
 
void RotateIP (Float_t *v) const
 Rotate vector in-place. Translation is NOT applied. More...
 
TVector3 Rotate (const TVector3 &v) const
 Rotate vector and return the rotated vector. Translation is NOT applied. More...
 
virtual void Print (Option_t *option="") const
 Print in reasonable format. More...
 
void SetFrom (Double_t *carr)
 
void SetFrom (const TGeoMatrix &mat)
 Initialize from TGeoMatrix. More...
 
void SetGeoHMatrix (TGeoHMatrix &mat)
 Set TGeoHMatrix mat. More...
 
void SetBuffer3D (TBuffer3D &buff)
 Fill transformation part TBuffer3D core section. More...
 
Bool_t GetUseTrans () const
 
void SetUseTrans (Bool_t v)
 
void SetEditRotation (Bool_t x)
 
void SetEditScale (Bool_t x)
 
Bool_t GetEditRotation ()
 
Bool_t GetEditScale ()
 
Bool_t GetEditTrans () const
 
void SetEditTrans (Bool_t v)
 
Bool_t IsScale (Double_t low=0.9, Double_t high=1.1) const
 Test if the transformation is a scale. More...
 
 ClassDef (TEveTrans, 1)
 
- Public Member Functions inherited from TObject
 TObject ()
 
 TObject (const TObject &object)
 TObject copy ctor. More...
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator. More...
 
virtual ~TObject ()
 TObject destructor. More...
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad. More...
 
virtual void Browse (TBrowser *b)
 Browse object. May be overridden for another default action. More...
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs. More...
 
virtual void Clear (Option_t *="")
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility. More...
 
virtual Int_t Compare (const TObject *obj) const
 Compare abstract method. More...
 
virtual void Copy (TObject &object) const
 Copy this to obj. More...
 
virtual void Delete (Option_t *option="")
 Delete this object. More...
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object. More...
 
virtual void Draw (Option_t *option="")
 Default Draw method for all objects. More...
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs. More...
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current pad. More...
 
virtual void Dump () const
 Dump contents of object on stdout. More...
 
virtual void Execute (const char *method, const char *params, Int_t *error=0)
 Execute method on this object with the given parameter string, e.g. More...
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 Execute method on this object with parameters stored in the TObjArray. More...
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py). More...
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes. More...
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes. More...
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object. More...
 
virtual UInt_t GetUniqueID () const
 Return the unique object id. More...
 
virtual const char * GetName () const
 Returns name of object. More...
 
virtual const char * GetIconName () const
 Returns mime type name of object. More...
 
virtual Option_tGetOption () const
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual const char * GetTitle () const
 Returns title of object. More...
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out. More...
 
virtual ULong_t Hash () const
 Return hash value for this object. More...
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname". More...
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl. More...
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas. More...
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More...
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory). More...
 
virtual Bool_t IsSortable () const
 
Bool_t IsOnHeap () const
 
Bool_t IsZombie () const
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification. More...
 
virtual void ls (Option_t *option="") const
 The ls function lists the contents of a class on stdout. More...
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself. More...
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list. More...
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory. More...
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list. More...
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename. More...
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out". More...
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object. More...
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id. More...
 
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory. More...
 
voidoperator new (size_t sz)
 
voidoperator new[] (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz, void *vp)
 
void operator delete (void *ptr)
 Operator delete. More...
 
void operator delete[] (void *ptr)
 Operator delete []. More...
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f. More...
 
void SetBit (UInt_t f)
 
void ResetBit (UInt_t f)
 
Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
void InvertBit (UInt_t f)
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message. More...
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message. More...
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message. More...
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message. More...
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract. More...
 
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). More...
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete. More...
 

Protected Member Functions

Double_t Norm3Column (Int_t col)
 Norm 3-vector in column col. More...
 
Double_t Orto3Column (Int_t col, Int_t ref)
 Orto-norm 3-vector in column col with respect to column ref. More...
 
- Protected Member Functions inherited from TObject
void MakeZombie ()
 
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 

Protected Attributes

Double32_t fM [16]
 
Float_t fA1
 
Float_t fA2
 
Float_t fA3
 
Bool_t fAsOK
 
Bool_t fUseTrans
 
Bool_t fEditTrans
 
Bool_t fEditRotation
 
Bool_t fEditScale
 

Friends

class TEveTransSubEditor
 
class TEveTransEditor
 

Additional Inherited Members

- Public Types inherited from TObject
enum  EStatusBits {
  kCanDelete = BIT(0), kMustCleanup = BIT(3), kObjInCanvas = BIT(3), kIsReferenced = BIT(4),
  kHasUUID = BIT(5), kCannotPick = BIT(6), kNoContextMenu = BIT(8), kInvalidObject = BIT(13)
}
 
enum  { kIsOnHeap = 0x01000000, kNotDeleted = 0x02000000, kZombie = 0x04000000, kBitMask = 0x00ffffff }
 
enum  { kSingleKey = BIT(0), kOverwrite = BIT(1), kWriteDelete = BIT(2) }
 
- Static Public Member Functions inherited from TObject
static Long_t GetDtorOnly ()
 Return destructor only flag. More...
 
static void SetDtorOnly (void *obj)
 Set destructor only flag. More...
 
static Bool_t GetObjectStat ()
 Get status of object stat flag. More...
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable. More...
 

#include <TEveTrans.h>

Inheritance diagram for TEveTrans:
[legend]

Constructor & Destructor Documentation

TEveTrans::TEveTrans ( )

Default constructor.

Definition at line 74 of file TEveTrans.cxx.

TEveTrans::TEveTrans ( const TEveTrans t)

Constructor.

Definition at line 88 of file TEveTrans.cxx.

TEveTrans::TEveTrans ( const Double_t  arr[16])

Constructor.

Definition at line 102 of file TEveTrans.cxx.

TEveTrans::TEveTrans ( const Float_t  arr[16])

Constructor.

Definition at line 116 of file TEveTrans.cxx.

virtual TEveTrans::~TEveTrans ( )
inlinevirtual

Definition at line 53 of file TEveTrans.h.

Member Function Documentation

Double_t* TEveTrans::Array ( )
inline
const Double_t* TEveTrans::Array ( ) const
inline

Definition at line 94 of file TEveTrans.h.

Double_t* TEveTrans::ArrT ( )
inline

Definition at line 98 of file TEveTrans.h.

Referenced by TEveTransSubEditor::SetModel().

const Double_t* TEveTrans::ArrT ( ) const
inline

Definition at line 98 of file TEveTrans.h.

Double_t* TEveTrans::ArrX ( )
inline

Definition at line 95 of file TEveTrans.h.

const Double_t* TEveTrans::ArrX ( ) const
inline

Definition at line 95 of file TEveTrans.h.

Double_t* TEveTrans::ArrY ( )
inline

Definition at line 96 of file TEveTrans.h.

const Double_t* TEveTrans::ArrY ( ) const
inline

Definition at line 96 of file TEveTrans.h.

Double_t* TEveTrans::ArrZ ( )
inline

Definition at line 97 of file TEveTrans.h.

const Double_t* TEveTrans::ArrZ ( ) const
inline

Definition at line 97 of file TEveTrans.h.

TEveTrans::ClassDef ( TEveTrans  ,
 
)
Double_t TEveTrans::CM ( Int_t  i,
Int_t  j 
) const
inline

Definition at line 103 of file TEveTrans.h.

Referenced by SetupFromToVec().

Double_t& TEveTrans::CM ( Int_t  i,
Int_t  j 
)
inline

Definition at line 104 of file TEveTrans.h.

TVector3 TEveTrans::GetBaseVec ( Int_t  b) const

Get base-vector with index b.

Definition at line 491 of file TEveTrans.cxx.

void TEveTrans::GetBaseVec ( Int_t  b,
TVector3 v 
) const

Definition at line 496 of file TEveTrans.cxx.

Bool_t TEveTrans::GetEditRotation ( )
inline

Definition at line 173 of file TEveTrans.h.

Referenced by TEveTransSubEditor::SetModel().

Bool_t TEveTrans::GetEditScale ( )
inline

Definition at line 174 of file TEveTrans.h.

Referenced by TEveTransSubEditor::SetModel().

Bool_t TEveTrans::GetEditTrans ( ) const
inline

Definition at line 176 of file TEveTrans.h.

void TEveTrans::GetPos ( Double_t x,
Double_t y,
Double_t z 
) const

Get position (base-vec 4).

Definition at line 534 of file TEveTrans.cxx.

void TEveTrans::GetPos ( Double_t x) const

Definition at line 539 of file TEveTrans.cxx.

void TEveTrans::GetPos ( Float_t x) const

Definition at line 545 of file TEveTrans.cxx.

void TEveTrans::GetPos ( TVector3 v) const

Definition at line 551 of file TEveTrans.cxx.

TVector3 TEveTrans::GetPos ( ) const

Definition at line 557 of file TEveTrans.cxx.

void TEveTrans::GetRotAngles ( Float_t x) const

Get Cardan rotation angles (pattern xYz above).

Definition at line 623 of file TEveTrans.cxx.

Referenced by TEveTransSubEditor::SetModel().

void TEveTrans::GetScale ( Double_t sx,
Double_t sy,
Double_t sz 
) const

Deduce scales from sizes of base vectors.

Definition at line 678 of file TEveTrans.cxx.

Referenced by GetRotAngles(), SetGeoHMatrix(), TEveTransSubEditor::SetModel(), and Unscale().

Bool_t TEveTrans::GetUseTrans ( ) const
inline

Definition at line 168 of file TEveTrans.h.

Referenced by TEveGeoShape::MakeBuffer3D().

Double_t TEveTrans::Invert ( )

Invert matrix.

Copied from ROOT's TMatrixFCramerInv.

Definition at line 863 of file TEveTrans.cxx.

Referenced by Rotate().

Bool_t TEveTrans::IsScale ( Double_t  low = 0.9,
Double_t  high = 1.1 
) const

Test if the transformation is a scale.

To be used by ROOT TGLObject descendants that potentially need to use GL_NORMALIZE. The low/high limits are expected to be squares of actual limits.

Ideally this should be done by the TGLViewer [but is not].

Definition at line 1074 of file TEveTrans.cxx.

Referenced by TEveTriangleSetGL::DirectDraw().

void TEveTrans::Move ( const TEveTrans a,
Int_t  ai,
Double_t  amount 
)

Move in a's coord-system along axis-index ai.

Definition at line 434 of file TEveTrans.cxx.

void TEveTrans::Move3 ( const TEveTrans a,
Double_t  x,
Double_t  y,
Double_t  z 
)

General move in a's coord-system.

Definition at line 445 of file TEveTrans.cxx.

void TEveTrans::Move3LF ( Double_t  x,
Double_t  y,
Double_t  z 
)

General move in local-frame.

Definition at line 365 of file TEveTrans.cxx.

void TEveTrans::Move3PF ( Double_t  x,
Double_t  y,
Double_t  z 
)

General move in parent-frame.

Definition at line 403 of file TEveTrans.cxx.

void TEveTrans::MoveLF ( Int_t  ai,
Double_t  amount 
)

Move in local-frame along axis with index ai.

Definition at line 356 of file TEveTrans.cxx.

void TEveTrans::MovePF ( Int_t  ai,
Double_t  amount 
)

Move in parent-frame along axis index ai.

Definition at line 395 of file TEveTrans.cxx.

TVector3 TEveTrans::Multiply ( const TVector3 v,
Double_t  w = 1 
) const

Multiply vector and return it.

Definition at line 761 of file TEveTrans.cxx.

Referenced by TEveProjection::ProjectPointdv().

void TEveTrans::Multiply ( const Double_t vin,
Double_t vout,
Double_t  w = 1 
) const

Multiply vector and fill output array vout.

Definition at line 771 of file TEveTrans.cxx.

void TEveTrans::MultiplyIP ( TVector3 v,
Double_t  w = 1 
) const
void TEveTrans::MultiplyIP ( Double_t v,
Double_t  w = 1 
) const

Multiply vector in-place.

Definition at line 739 of file TEveTrans.cxx.

void TEveTrans::MultiplyIP ( Float_t v,
Double_t  w = 1 
) const

Multiply vector in-place.

Definition at line 750 of file TEveTrans.cxx.

void TEveTrans::MultLeft ( const TEveTrans t)

Multiply from left: this = t * this.

Definition at line 301 of file TEveTrans.cxx.

Referenced by Rotate().

void TEveTrans::MultRight ( const TEveTrans t)

Multiply from right: this = this * t.

Definition at line 317 of file TEveTrans.cxx.

Referenced by operator*(), and operator*=().

Double_t TEveTrans::Norm3Column ( Int_t  col)
protected

Norm 3-vector in column col.

Definition at line 825 of file TEveTrans.cxx.

Referenced by OrtoNorm3().

Double_t TEveTrans::operator() ( Int_t  i,
Int_t  j 
) const
inline

Definition at line 106 of file TEveTrans.h.

Double_t& TEveTrans::operator() ( Int_t  i,
Int_t  j 
)
inline

Definition at line 107 of file TEveTrans.h.

TEveTrans TEveTrans::operator* ( const TEveTrans t)

Copy, multiply from right and return product.

Avoid unless necessary.

Definition at line 334 of file TEveTrans.cxx.

void TEveTrans::operator*= ( const TEveTrans t)
inline

Definition at line 72 of file TEveTrans.h.

TEveTrans& TEveTrans::operator= ( const TEveTrans t)
inline

Definition at line 63 of file TEveTrans.h.

Double_t TEveTrans::operator[] ( Int_t  i) const
inline

Definition at line 100 of file TEveTrans.h.

Double_t& TEveTrans::operator[] ( Int_t  i)
inline

Definition at line 101 of file TEveTrans.h.

Double_t TEveTrans::Orto3Column ( Int_t  col,
Int_t  ref 
)
protected

Orto-norm 3-vector in column col with respect to column ref.

Definition at line 836 of file TEveTrans.cxx.

Referenced by OrtoNorm3().

void TEveTrans::OrtoNorm3 ( )

Orto-norm columns 1 to 3.

Definition at line 848 of file TEveTrans.cxx.

void TEveTrans::Print ( Option_t option = "") const
virtual

Print in reasonable format.

Reimplemented from TObject.

Definition at line 956 of file TEveTrans.cxx.

void TEveTrans::Rotate ( const TEveTrans a,
Int_t  i1,
Int_t  i2,
Double_t  amount 
)

Rotate in a's coord-system, rotating base vector with index i1 into i2.

Definition at line 457 of file TEveTrans.cxx.

TVector3 TEveTrans::Rotate ( const TVector3 v) const

Rotate vector and return the rotated vector. Translation is NOT applied.

Definition at line 815 of file TEveTrans.cxx.

void TEveTrans::RotateIP ( TVector3 v) const

Rotate vector in-place. Translation is NOT applied.

Definition at line 781 of file TEveTrans.cxx.

Referenced by TEveTrackPropagator::DistributeOffset().

void TEveTrans::RotateIP ( Double_t v) const

Rotate vector in-place. Translation is NOT applied.

Definition at line 791 of file TEveTrans.cxx.

void TEveTrans::RotateIP ( Float_t v) const

Rotate vector in-place. Translation is NOT applied.

Definition at line 803 of file TEveTrans.cxx.

void TEveTrans::RotateLF ( Int_t  i1,
Int_t  i2,
Double_t  amount 
)

Rotate in local frame. Does optimised version of MultRight.

Definition at line 375 of file TEveTrans.cxx.

Referenced by SetRotByAnyAngles().

void TEveTrans::RotatePF ( Int_t  i1,
Int_t  i2,
Double_t  amount 
)

Rotate in parent frame. Does optimised version of MultLeft.

Definition at line 413 of file TEveTrans.cxx.

Referenced by Rotate().

void TEveTrans::Scale ( Double_t  sx,
Double_t  sy,
Double_t  sz 
)

Scale matrix. Translation part untouched.

Definition at line 647 of file TEveTrans.cxx.

Referenced by TEveTransSubEditor::SetTransFromData().

void TEveTrans::SetBaseVec ( Int_t  b,
Double_t  x,
Double_t  y,
Double_t  z 
)

Set base-vector with index b.

Definition at line 471 of file TEveTrans.cxx.

void TEveTrans::SetBaseVec ( Int_t  b,
const TVector3 v 
)

Set base-vector with index b.

Definition at line 481 of file TEveTrans.cxx.

void TEveTrans::SetBuffer3D ( TBuffer3D buff)

Fill transformation part TBuffer3D core section.

Definition at line 1049 of file TEveTrans.cxx.

Referenced by TEveGeoShape::Paint(), and TEveElement::PaintStandard().

void TEveTrans::SetEditRotation ( Bool_t  x)
inline

Definition at line 171 of file TEveTrans.h.

Referenced by TEveText::SetFontMode().

void TEveTrans::SetEditScale ( Bool_t  x)
inline

Definition at line 172 of file TEveTrans.h.

Referenced by TEveText::SetFontMode().

void TEveTrans::SetEditTrans ( Bool_t  v)
inline

Definition at line 177 of file TEveTrans.h.

Referenced by TEveTransSubEditor::DoEditTrans().

void TEveTrans::SetFrom ( Double_t carr)

Definition at line 981 of file TEveTrans.cxx.

Referenced by TEveElement::SetTransMatrix(), and TEveGeoTopNode::UseNodeTrans().

void TEveTrans::SetFrom ( const TGeoMatrix mat)

Initialize from TGeoMatrix.

Definition at line 993 of file TEveTrans.cxx.

void TEveTrans::SetFromArray ( const Double_t  arr[16])

Set matrix from Double_t array.

Definition at line 178 of file TEveTrans.cxx.

Referenced by TEveGeoNode::DumpShapeTree(), TEveGeoShape::SubImportShapeExtract(), and TEveTrans().

void TEveTrans::SetFromArray ( const Float_t  arr[16])

Set matrix from Float_t array.

Definition at line 187 of file TEveTrans.cxx.

void TEveTrans::SetGeoHMatrix ( TGeoHMatrix mat)

Set TGeoHMatrix mat.

Definition at line 1020 of file TEveTrans.cxx.

Referenced by TEveGeoTopNode::Paint().

void TEveTrans::SetPos ( Double_t  x,
Double_t  y,
Double_t  z 
)

Set position (base-vec 4).

Definition at line 507 of file TEveTrans.cxx.

Referenced by TEveGridStepper::SetTrans(), and TEveTransSubEditor::SetTransFromData().

void TEveTrans::SetPos ( Double_t x)

Definition at line 512 of file TEveTrans.cxx.

void TEveTrans::SetPos ( Float_t x)

Definition at line 518 of file TEveTrans.cxx.

void TEveTrans::SetPos ( const TEveTrans t)

Definition at line 524 of file TEveTrans.cxx.

void TEveTrans::SetRotByAngles ( Float_t  a1,
Float_t  a2,
Float_t  a3 
)

Definition at line 572 of file TEveTrans.cxx.

Referenced by TEveTransSubEditor::SetTransFromData().

void TEveTrans::SetRotByAnyAngles ( Float_t  a1,
Float_t  a2,
Float_t  a3,
const char *  pat 
)

Sets Rotation part as given by angles a1, a1, a3 and pattern pat.

Pattern consists of "XxYyZz" characters. eg: x means rotate about x axis, X means rotate in negative direction xYz -> R_x(a3) * R_y(-a2) * R_z(a1); (standard Gled representation) Note that angles and pattern elements have inverted order!

Implements Eulerian/Cardanian angles in a uniform way.

Definition at line 602 of file TEveTrans.cxx.

void TEveTrans::SetScale ( Double_t  sx,
Double_t  sy,
Double_t  sz 
)

Set scaling.

Definition at line 688 of file TEveTrans.cxx.

void TEveTrans::SetScaleX ( Double_t  sx)

Change x scaling.

Definition at line 702 of file TEveTrans.cxx.

void TEveTrans::SetScaleY ( Double_t  sy)

Change y scaling.

Definition at line 711 of file TEveTrans.cxx.

void TEveTrans::SetScaleZ ( Double_t  sz)

Change z scaling.

Definition at line 720 of file TEveTrans.cxx.

void TEveTrans::SetTrans ( const TEveTrans t,
Bool_t  copyAngles = kTRUE 
)

Set matrix from another,.

Definition at line 164 of file TEveTrans.cxx.

Referenced by operator=(), and TEveTrans().

void TEveTrans::SetupFromToVec ( const TEveVector from,
const TEveVector to 
)

A function for creating a rotation matrix that rotates a vector called "from" into another vector called "to".

Input : from[3], to[3] which both must be normalized non-zero vectors Output: mtx[3][3] – a 3x3 matrix in column-major form

Authors: Tomas Möller, John Hughes "Efficiently Building a Matrix to Rotate One Vector to Another" Journal of Graphics Tools, 4(4):1-4, 1999

Definition at line 219 of file TEveTrans.cxx.

Referenced by TEveTrackPropagator::DistributeOffset().

void TEveTrans::SetupRotation ( Int_t  i,
Int_t  j,
Double_t  f 
)

Setup the matrix as an elementary rotation.

Optimized versions of left/right multiplication with an elementary rotation matrix are implemented in RotatePF/RotateLF. Expects identity matrix.

Definition at line 199 of file TEveTrans.cxx.

void TEveTrans::SetUseTrans ( Bool_t  v)
inline

Definition at line 169 of file TEveTrans.h.

Referenced by TEveTransSubEditor::DoUseTrans().

void TEveTrans::TransposeRotationPart ( )

Transpose 3x3 rotation sub-matrix.

Definition at line 344 of file TEveTrans.cxx.

void TEveTrans::UnitRot ( )

Reset rotation part of the matrix to unity.

Definition at line 153 of file TEveTrans.cxx.

Referenced by SetRotByAnyAngles().

void TEveTrans::UnitTrans ( )

Reset matrix to unity.

Definition at line 130 of file TEveTrans.cxx.

Referenced by TEveElement::InitMainTrans(), TEveTransSubEditor::SetTransFromData(), and TEveTrans().

Double_t TEveTrans::Unscale ( )

Remove scaling, make all base vectors of unit length.

Definition at line 657 of file TEveTrans.cxx.

void TEveTrans::Unscale ( Double_t sx,
Double_t sy,
Double_t sz 
)

Remove scaling, make all base vectors of unit length.

Definition at line 667 of file TEveTrans.cxx.

void TEveTrans::ZeroTrans ( Double_t  w = 1.0)

Reset matrix to zero, only the perspective scaling is set to w (1 by default).

Definition at line 142 of file TEveTrans.cxx.

Referenced by SetupFromToVec().

Friends And Related Function Documentation

friend class TEveTransEditor
friend

Definition at line 29 of file TEveTrans.h.

friend class TEveTransSubEditor
friend

Definition at line 28 of file TEveTrans.h.

Member Data Documentation

Float_t TEveTrans::fA1
mutableprotected

Definition at line 34 of file TEveTrans.h.

Referenced by GetRotAngles(), SetRotByAngles(), SetTrans(), UnitRot(), UnitTrans(), and ZeroTrans().

Float_t TEveTrans::fA2
mutableprotected

Definition at line 35 of file TEveTrans.h.

Referenced by GetRotAngles(), SetRotByAngles(), SetTrans(), UnitRot(), UnitTrans(), and ZeroTrans().

Float_t TEveTrans::fA3
mutableprotected

Definition at line 36 of file TEveTrans.h.

Referenced by GetRotAngles(), SetRotByAngles(), SetTrans(), UnitRot(), UnitTrans(), and ZeroTrans().

Bool_t TEveTrans::fAsOK
mutableprotected
Bool_t TEveTrans::fEditRotation
protected

Definition at line 42 of file TEveTrans.h.

Referenced by GetEditRotation(), and SetEditRotation().

Bool_t TEveTrans::fEditScale
protected

Definition at line 43 of file TEveTrans.h.

Referenced by GetEditScale(), and SetEditScale().

Bool_t TEveTrans::fEditTrans
protected

Definition at line 41 of file TEveTrans.h.

Referenced by GetEditTrans(), SetEditTrans(), and TEveTransSubEditor::SetModel().

Double32_t TEveTrans::fM[16]
protected
Bool_t TEveTrans::fUseTrans
protected
Collaboration diagram for TEveTrans:
[legend]

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