TGLMatrix 16 component (4x4) transform matrix - column MAJOR as per GL. Provides limited support for adjusting the translation, scale and rotation components. This is part of collection of simple utility classes for GL only in TGLUtil.h/cxx. These provide const and non-const accessors Arr() & CArr() to a GL compatible internal field - so can be used directly with OpenGL C API calls - which TVector3 etc cannot (easily). They are not intended to be fully featured just provide minimum required.
Bool_t | ValidIndex(UInt_t index) const |
Double_t | fVals[16] | Column MAJOR as per OGL |
Construct matrix with translation components x,y,z: 1 0 0 x 0 1 0 y 0 0 1 z 0 0 0 1
Construct matrix with translation components x,y,z: 1 0 0 translation.X() 0 1 0 translation.Y() 0 0 1 translation.Z() 0 0 0 1
Construct matrix which when applied puts local origin at
'origin' and the local Z axis in direction 'z'. Both
'origin' and 'zAxisVec' are expressed in the parent frame
Construct matrix which when applied puts local origin at
'origin' and the local Z axis in direction 'z'. Both
'origin' and 'zAxisVec' are expressed in the parent frame
Construct matrix using the 16 Double_t 'vals' passed, ordering is maintained - i.e. should be column major as we are
Set matrix which when applied puts local origin at 'origin' and the local Z axis in direction 'z'. Both 'origin' and 'z' are expressed in the parent frame
Shift matrix translation components by 'vect' in parent frame.
Translate in local frame. i1, i2 are axes indices: 1 ~ x, 2 ~ y, 3 ~ z.
Translate in local frame along all base vectors simultaneously.
Set matrix axis scales to 'scale'. Note - this really sets the overall (total) scaling for each axis - it does NOT apply compounded scale on top of existing one
Update martix so resulting transform has been rotated about 'pivot' (in parent frame), round vector 'axis', through 'angle' (radians) Equivalent to glRotate function, but with addition of translation and compounded on top of existing.
Transform passed 'vertex' by this matrix - converts local frame to parent
Transpose the top left 3x3 matrix component along major diagonal Supported as currently incompatability between TGeo and GL matrix layouts for this 3x3 only. To be resolved.
Return true if matrix is to be considered a scaling matrix for rendering.