ROOT logo
Gled » GLEDCORE » ZTrans

class ZTrans: public HTrans<Double32_t>

 ZTrans

 ZTrans is a 4x4 transformation matrix for homogeneous coordinates
 stored internaly 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 in mA[1-3] (+z, -y, +x) are stored for backward
 compatibility and will probably be removed soon.

 Direct  element access (first two should be used with care):
 operator[i]    direct access to elements,   i:0->15
 CM(i,j)        element 4*j + i;           i,j:0->3    { CM ~ c-matrix }
 operator(i,j)  element 4*(j-1) + i - 1    i,j:1->4

 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

Function Members (Methods)

public:
Double32_tZTrans()
Double32_tZTrans(const ZTrans& z)
~ZTrans()
Double32_t*HTrans<Double32_t>::Array()
const Double32_t*HTrans<Double32_t>::Array() const
Double32_t*HTrans<Double32_t>::ArrT()
const Double32_t*HTrans<Double32_t>::ArrT() const
Double32_t*HTrans<Double32_t>::ArrX()
const Double32_t*HTrans<Double32_t>::ArrX() const
Double32_t*HTrans<Double32_t>::ArrY()
const Double32_t*HTrans<Double32_t>::ArrY() const
Double32_t*HTrans<Double32_t>::ArrZ()
const Double32_t*HTrans<Double32_t>::ArrZ() const
static TClass*Class()
Double32_tHTrans<Double32_t>::CM(Int_t i, Int_t j) const
Double32_t&HTrans<Double32_t>::CM(Int_t i, Int_t j)
HPoint<Double32_t>HTrans<Double32_t>::GetBaseVec(Int_t b) const
voidHTrans<Double32_t>::GetBaseVec(Int_t b, Float_t* x) const
voidHTrans<Double32_t>::GetBaseVec(Int_t b, Double_t* x) const
HPoint<Double32_t>HTrans<Double32_t>::GetPos() const
voidHTrans<Double32_t>::GetPos(Float_t* x) const
voidHTrans<Double32_t>::GetPos(Double_t* x) const
voidHTrans<Double32_t>::GetPos(Double32_t& x, Double32_t& y, Double32_t& z) const
voidHTrans<Double32_t>::GetRotAngles(Float_t* x) const
voidHTrans<Double32_t>::GetScale(Double32_t& sx, Double32_t& sy, Double32_t& sz) const
Double32_tHTrans<Double32_t>::Invert()
Double32_tHTrans<Double32_t>::InvertWithoutRow4()
TClass*IsA() const
voidHTrans<Double32_t>::Move(const HTrans<Double32_t>& a, Int_t ai, Double32_t amount)
voidHTrans<Double32_t>::Move3(const HTrans<Double32_t>& a, Double32_t x, Double32_t y, Double32_t z)
voidHTrans<Double32_t>::Move3LF(Double32_t x, Double32_t y, Double32_t z)
voidHTrans<Double32_t>::Move3PF(Double32_t x, Double32_t y, Double32_t z)
voidHTrans<Double32_t>::MoveLF(Int_t ai, Double32_t amount)
voidHTrans<Double32_t>::MovePF(Int_t ai, Double32_t amount)
HPoint<Double32_t>HTrans<Double32_t>::Multiply(const HPoint<Double32_t>& v, Double32_t w = 1) const
voidHTrans<Double32_t>::MultiplyIP(HPoint<Double32_t>& v, Double32_t w = 1) const
voidHTrans<Double32_t>::MultiplyVec3(const Double32_t* in, Double32_t w, Double32_t* out) const
voidHTrans<Double32_t>::MultiplyVec3IP(Double32_t* in, Double32_t w) const
voidHTrans<Double32_t>::MultLeft(const HTrans<Double32_t>& t)
voidHTrans<Double32_t>::MultLeft3x3(const Double32_t* m)
voidHTrans<Double32_t>::MultLeft3x3transposed(const Double32_t* m)
voidHTrans<Double32_t>::MultRight(const HTrans<Double32_t>& t)
voidHTrans<Double32_t>::MultRight3x3(const Double32_t* m)
voidHTrans<Double32_t>::MultRight3x3transposed(const Double32_t* m)
Double32_tHTrans<Double32_t>::Norm3Column(Int_t col)
const Double32_t*HTrans<Double32_t>::operator const Double32_t*() const
Double32_t*HTrans<Double32_t>::operator Double32_t*()
Double32_tHTrans<Double32_t>::operator()(Int_t i, Int_t j) const
Double32_t&HTrans<Double32_t>::operator()(Int_t i, Int_t j)
ZTransoperator*(const ZTrans& t)
voidHTrans<Double32_t>::operator*=(const HTrans<Double32_t>& t)
ZTrans&operator=(const ZTrans&)
Double32_tHTrans<Double32_t>::operator[](Int_t i) const
Double32_t&HTrans<Double32_t>::operator[](Int_t i)
Double32_tHTrans<Double32_t>::Orto3Column(Int_t col, Int_t ref)
voidHTrans<Double32_t>::OrtoNorm3()
Double32_tHTrans<Double32_t>::OrtoNorm3Column(Int_t col, Int_t ref)
voidHTrans<Double32_t>::Print() const
Double32_t*HTrans<Double32_t>::PtrBaseVec(Int_t b)
const Double32_t*HTrans<Double32_t>::PtrBaseVec(Int_t b) const
Double32_t*HTrans<Double32_t>::PtrBaseVecX()
const Double32_t*HTrans<Double32_t>::PtrBaseVecX() const
Double32_t*HTrans<Double32_t>::PtrBaseVecY()
const Double32_t*HTrans<Double32_t>::PtrBaseVecY() const
Double32_t*HTrans<Double32_t>::PtrBaseVecZ()
const Double32_t*HTrans<Double32_t>::PtrBaseVecZ() const
Double32_t*HTrans<Double32_t>::PtrPos()
HPoint<Double32_t>HTrans<Double32_t>::Rotate(const HPoint<Double32_t>& v) const
voidHTrans<Double32_t>::Rotate(const HTrans<Double32_t>& a, Int_t i1, Int_t i2, Double32_t amount)
voidHTrans<Double32_t>::RotateBackVec3(const Double32_t* in, Double32_t* out) const
voidHTrans<Double32_t>::RotateIP(HPoint<Double32_t>& v) const
voidHTrans<Double32_t>::RotateLF(Int_t i1, Int_t i2, Double32_t amount)
voidHTrans<Double32_t>::RotatePF(Int_t i1, Int_t i2, Double32_t amount)
voidHTrans<Double32_t>::RotateVec3(const Double32_t* in, Double32_t* out) const
voidHTrans<Double32_t>::RotateVec3IP(Double32_t* in) const
voidHTrans<Double32_t>::Scale(Double32_t sx, Double32_t sy, Double32_t sz)
voidSetBaseVec(Int_t b, const ZPoint& v)
voidHTrans<Double32_t>::SetBaseVecViaCross(Int_t i)
voidHTrans<Double32_t>::SetFromArray(const Float_t* arr)
voidHTrans<Double32_t>::SetFromArray(const Double_t* arr)
voidHTrans<Double32_t>::SetPos(const Float_t* x)
voidHTrans<Double32_t>::SetPos(const Double_t* x)
voidHTrans<Double32_t>::SetPos(const HTrans<Double32_t>& t)
voidHTrans<Double32_t>::SetPos(Double32_t x, Double32_t y, Double32_t z)
voidHTrans<Double32_t>::SetRotByAngles(Float_t a1, Float_t a2, Float_t a3)
voidHTrans<Double32_t>::SetRotByAnyAngles(Float_t a1, Float_t a2, Float_t a3, const Text_t* pat)
voidHTrans<Double32_t>::SetTrans(const HTrans<Double32_t>& t)
voidHTrans<Double32_t>::SetupRotation(Int_t i, Int_t j, Double32_t f)
voidShowMembers(TMemberInspector& insp)
voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
voidHTrans<Double32_t>::Transpose()
voidHTrans<Double32_t>::TransposeRotationPart()
voidHTrans<Double32_t>::UnitRot()
voidHTrans<Double32_t>::UnitTrans()
Double32_tHTrans<Double32_t>::Unscale()
voidHTrans<Double32_t>::Unscale(Double32_t& sx, Double32_t& sy, Double32_t& sz)

Data Members

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

ZTrans operator*(const ZTrans& t)
ZTrans()
{}
ZTrans(const ZTrans& z)
ZTrans(const Double_t arr[16]);
ZTrans(const Float_t  arr[16]);
{}
~ZTrans()
{}
void SetBaseVec(Int_t b, const ZPoint& v)
{ SetBaseVec(b, v.x, v.y, v.z); }