Difference between revisions of "HPL3/SOMA/Scripting/cMatrixf"

From Frictional Wiki
< HPL3‎ | SOMA‎ | Scripting
Jump to navigation Jump to search
 
Line 81: Line 81:
 
//                104, 104, 104, 104 }</syntaxhighlight>
 
//                104, 104, 104, 104 }</syntaxhighlight>
  
 +
{{ReferencesSection}}
  
 
{{HPL3SOMAScriptingCategories}}
 
{{HPL3SOMAScriptingCategories}}
 
__FORCETOC__
 
__FORCETOC__

Latest revision as of 15:10, 6 August 2020

A 4x4 matrix which stores its elements as floats. It is frequently used in transformation-related functions. (i.e. translation, rotation, scale, etc.)

Constructors

Constructor Description
cMatrixf() Creates a matrix with default values.
cMatrixf(cVector4f, cVector4f, cVector4f, cVector4f) Creates a matrix using the given vectors as column data.
cMatrixf(float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float) Creates a matrix using the given values as cell data.

Fields

cMatrixf has no public fields.

Functions

Return Type Function Name Parameters Description
float GetElement uint64,
uint64
cVector3f GetForward
cVector3f GetRight
cMatrixf GetRotation
cVector3f GetTranslation
cMatrixf GetTranspose
cVector3f GetUp
void SetForward const cVector3f &in avVec
void SetRight const cVector3f &in avVec
void SetRotation float afXX,
float afXY,
float afXZ,
float afYX,
float afYY,
float afYZ,
float afZX,
float afZY,
float afZZ
void SetRotation const cMatrixf &in a_mtxRot
void SetTranslation const cVector3f &in avTrans
void SetUp const cVector3f &in avVec

Remarks

To retrieve a value from a matrix, use the GetElement function above. The parameters for the GetElement function use the format GetElement(columnIndex, rowIndex).

cMatrixf m1(cVector4f(0, 1, 2, 3), 
            cVector4f(4, 5, 6, 7), 
	        cVector4f(8, 9, 10, 11), 
	        cVector4f(12, 13, 14, 15));

float f = m1.GetElement(1, 2);

// value of f: 9

To do matrix computations, use the cMath_MatrixXXX family of functions.

cMatrixf m1(cVector4f(1, 1, 1, 1), 
            cVector4f(2, 2, 2, 2), 
            cVector4f(3, 3, 3, 3), 
            cVector4f(4, 4, 4, 4));

cMatrixf m2(cVector4f(5, 5, 5, 5), 
            cVector4f(6, 6, 6, 6), 
            cVector4f(7, 7, 7, 7), 
            cVector4f(8, 8, 8, 8));
            
cMatrixf m3 = cMath_MatrixMul(m1, m2);

// value of m3: { 26,  26,  26,  26,
//                52,  52,  52,  52,
//                78,  78,  78,  78,
//                104, 104, 104, 104 }

References

See all references...