12 #ifndef ROOT_TEveTrans 13 #define ROOT_TEveTrans TEveTrans is a 4x4 transformation matrix for homogeneous coordinates stored internally in a column-ma...
void MultLeft(const TEveTrans &t)
Multiply from left: this = t * this.
TEveTrans()
Default constructor.
void OrtoNorm3()
Orto-norm columns 1 to 3.
Double_t & operator()(Int_t i, Int_t j)
void MultRight(const TEveTrans &t)
Multiply from right: this = this * t.
Geometrical transformation package.
void SetScale(Double_t sx, Double_t sy, Double_t sz)
Set scaling.
void operator*=(const TEveTrans &t)
void SetScaleX(Double_t sx)
Change x scaling.
void SetScaleZ(Double_t sz)
Change z scaling.
Double_t & CM(Int_t i, Int_t j)
Matrix class used for computing global transformations Should NOT be used for node definition...
void UnitRot()
Reset rotation part of the matrix to unity.
Double_t & operator[](Int_t i)
TVector3 GetBaseVec(Int_t b) const
Get base-vector with index b.
void MultiplyIP(TVector3 &v, Double_t w=1) const
Multiply vector in-place.
const Double_t * ArrZ() const
void SetUseTrans(Bool_t v)
#define ClassDef(name, id)
Double_t Unscale()
Remove scaling, make all base vectors of unit length.
const Double_t * ArrX() const
TEveTrans operator*(const TEveTrans &t)
Copy, multiply from right and return product.
void Move3LF(Double_t x, Double_t y, Double_t z)
General move in local-frame.
void SetEditScale(Bool_t x)
void SetRotByAngles(Float_t a1, Float_t a2, Float_t a3)
std::ostream & operator<<(std::ostream &s, const TEveTrans &t)
Print to std::ostream.
Double_t Orto3Column(Int_t col, Int_t ref)
Orto-norm 3-vector in column col with respect to column ref.
void Move(const TEveTrans &a, Int_t ai, Double_t amount)
Move in a's coord-system along axis-index ai.
const Double_t * Array() const
const Double_t * ArrY() const
Bool_t GetUseTrans() const
void ZeroTrans(Double_t w=1.0)
Reset matrix to zero, only the perspective scaling is set to w (1 by default).
const Double_t * ArrT() const
void Scale(Double_t sx, Double_t sy, Double_t sz)
Scale matrix. Translation part untouched.
virtual void Print(Option_t *option="") const
Print in reasonable format.
void SetScaleY(Double_t sy)
Change y scaling.
void SetupRotation(Int_t i, Int_t j, Double_t f)
Setup the matrix as an elementary rotation.
void SetEditRotation(Bool_t x)
void SetFrom(Double_t *carr)
Bool_t IsScale(Double_t low=0.9, Double_t high=1.1) const
Test if the transformation is a scale.
void RotatePF(Int_t i1, Int_t i2, Double_t amount)
Rotate in parent frame. Does optimised version of MultLeft.
TVector3 is a general three vector class, which can be used for the description of different vectors ...
Double_t CM(Int_t i, Int_t j) const
TEveTrans & operator=(const TEveTrans &t)
void RotateIP(TVector3 &v) const
Rotate vector in-place. Translation is NOT applied.
void SetBuffer3D(TBuffer3D &buff)
Fill transformation part TBuffer3D core section.
void TransposeRotationPart()
Transpose 3x3 rotation sub-matrix.
void SetBaseVec(Int_t b, Double_t x, Double_t y, Double_t z)
Set base-vector with index b.
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.
Editor for TEveTrans class.
Generic 3D primitive description class.
void GetScale(Double_t &sx, Double_t &sy, Double_t &sz) const
Deduce scales from sizes of base vectors.
void SetTrans(const TEveTrans &t, Bool_t copyAngles=kTRUE)
Set matrix from another,.
void MovePF(Int_t ai, Double_t amount)
Move in parent-frame along axis index ai.
void SetPos(Double_t x, Double_t y, Double_t z)
Set position (base-vec 4).
Sub-editor for TEveTrans class.
void MoveLF(Int_t ai, Double_t amount)
Move in local-frame along axis with index ai.
Double_t Invert()
Invert matrix.
static constexpr double s
TVector3 Multiply(const TVector3 &v, Double_t w=1) const
Multiply vector and return it.
Double_t operator()(Int_t i, Int_t j) const
void RotateLF(Int_t i1, Int_t i2, Double_t amount)
Rotate in local frame. Does optimised version of MultRight.
Mother of all ROOT objects.
you should not use this method at all Int_t Int_t z
void SetupFromToVec(const TEveVector &from, const TEveVector &to)
A function for creating a rotation matrix that rotates a vector called "from" into another vector cal...
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
void SetGeoHMatrix(TGeoHMatrix &mat)
Set TGeoHMatrix mat.
void Move3(const TEveTrans &a, Double_t x, Double_t y, Double_t z)
General move in a's coord-system.
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.
void SetFromArray(const Double_t arr[16])
Set matrix from Double_t array.
Double_t Norm3Column(Int_t col)
Norm 3-vector in column col.
Double_t operator[](Int_t i) const
Bool_t GetEditTrans() const
void GetRotAngles(Float_t *x) const
Get Cardan rotation angles (pattern xYz above).
void SetEditTrans(Bool_t v)
void UnitTrans()
Reset matrix to unity.
void Move3PF(Double_t x, Double_t y, Double_t z)
General move in parent-frame.