IC8 Python API:RLPy RMatrix4
Contents
- 1 Description
- 2 Public Methods
- 2.1 RLPy.RMatrix4.AccuRotate(self, rkRotate)
- 2.2 RLPy.RMatrix4.AccuScale(self, rkScale)
- 2.3 RLPy.RMatrix4.AccuTranslate(self, rkTranslate)
- 2.4 RLPy.RMatrix4.Adjoint(self)
- 2.5 RLPy.RMatrix4.AdjointTranspose(self)
- 2.6 RLPy.RMatrix4.AlmostSame(self, kM, fThreshold)
- 2.7 RLPy.RMatrix4.Determinant(self)
- 2.8 RLPy.RMatrix4.E(self, args)
- 2.9 RLPy.RMatrix4.FromEulerAngle(self, Oreder, rx, ry, rz)
- 2.10 RLPy.RMatrix4.GetColumn(self, nC)
- 2.11 RLPy.RMatrix4.GetRow(self, nR)
- 2.12 RLPy.RMatrix4.GetSR(self)
- 2.13 RLPy.RMatrix4.GetTranslate(self)
- 2.14 RLPy.RMatrix4.InfNorm(self)
- 2.15 RLPy.RMatrix4.Inverse(self)
- 2.16 RLPy.RMatrix4.InverseTranspose(self)
- 2.17 RLPy.RMatrix4.M(self, args)
- 2.18 RLPy.RMatrix4.MakeIdentity(self)
- 2.19 RLPy.RMatrix4.MaxColumn(self)
- 2.20 RLPy.RMatrix4.MaxRow(self)
- 2.21 RLPy.RMatrix4.OneNorm(self)
- 2.22 RLPy.RMatrix4.RotateAxisAngle(self, rkAxis, fAngle)
- 2.23 RLPy.RMatrix4.RotationX(self, fAngle)
- 2.24 RLPy.RMatrix4.RotationY(self, fAngle)
- 2.25 RLPy.RMatrix4.RotationZ(self, fAngle)
- 2.26 RLPy.RMatrix4.SetSR(self, mSR)
- 2.27 RLPy.RMatrix4.SetTranslate(self, vTranslate)
- 2.28 RLPy.RMatrix4.TimesTranspose(self, mM)
- 2.29 RLPy.RMatrix4.Transpose(self)
- 2.30 RLPy.RMatrix4.TransposeTimes(self, mM)
- Main article: iC8 Modules.
- Last modified: 01/17/2023
Description
This class represent the transform data of RTransform. This class provides access to RLPy's internal 4x4 matrix operators and related functions.
Public Methods
RLPy.RMatrix4.AccuRotate(self, rkRotate)
Accumulate matrix with rotation matrix.
Parameters
rkRotate[IN] Rotation matrix - RLPy.RMatrix3
Returns
Return a new matrix (*this) *= Accumulate - RLPy.RMatrix4
1 matrix4_orgin = RLPy.RMatrix4()
2 matrix4_orgin.MakeIdentity()
3 matrix3_orgin = RLPy.RMatrix3()
4 matrix3_orgin.FromAxisAngle( RLPy.RVector3( 0, 1, 0 ), 90 * RLPy.RMath.CONST_DEG_TO_RAD )
5 matrix4_orgin.AccuRotate(matrix3_orgin)
6 matrix4_orgin.AccuRotate(matrix3_orgin)
7
8 rotate = RLPy.RMatrix3()
9 matrix4_orgin.GetSimpleRotate( rotate )
10 row0 = rotate.GetRow(0)
11
12 print(row0[0])
13 print(row0[1])
14 print(row0[2])
RLPy.RMatrix4.AccuScale(self, rkScale)
Accumulate matrix with scale vector.
Parameters
rkScale[IN] Scale vector - RLPy.RVector3
Returns
Return a new matrix (*this) *= Accumulate - RLPy.RMatrix4
1 matrix4_orgin = RLPy.RMatrix4()
2 matrix4_orgin.MakeIdentity()
3 matrix4_orgin.AccuScale(RLPy.RVector3( 2, 2, 2 ) )
4 matrix4_orgin.AccuScale(RLPy.RVector3( 3, 3, 3 ) )
5
6 result = matrix4_orgin.GetSR()
7
8 row0 = result.GetRow(0)
9 print(row0[0] == 2*3)
10
11 row1 = result.GetRow(1)
12 print(row1[1] == 2*3)
13
14 row2 = result.GetRow(2)
15 print(row2[2] == 2*3)
RLPy.RMatrix4.AccuTranslate(self, rkTranslate)
Accumulate matrix with translate vector.
Parameters
rkTranslate[IN] Translate vector - RLPy.RVector3
Returns
Return a new matrix (*this) *= Accumulate - RLPy.RMatrix4
1 matrix4_orgin = RLPy.RMatrix4()
2 matrix4_orgin.MakeIdentity()
3 matrix4_orgin.AccuTranslate(RLPy.RVector3( 1, 2, 3 ) )
4 matrix4_orgin.AccuTranslate(RLPy.RVector3( 2, 2, 2 ) )
5
6 row3 = matrix4_orgin.GetRow(3)
7
8 print(row3[0] == 1+2)
9 print(row3[1] == 2+2)
10 print(row3[2] == 2+3)
RLPy.RMatrix4.Adjoint(self)
Inverse times determinant.
Returns
Returns a new matrix containing this matrix's adjoint - RLPy.RMatrix4
1 matrix4_value = RLPy.RMatrix4( 1, 2, 1, 1,
2 1, 1,-1,-2,
3 1,-1,-1, 2,
4 1,-2, 1,-1 )
5
6 matrix4_Adjoint = matrix4_value.Adjoint()
7 row0_Adjoint = matrix4_Adjoint.GetRow(0)
8
9 print(row0_Adjoint[0])
10 print(row0_Adjoint[1])
11 print(row0_Adjoint[2])
12 print(row0_Adjoint[3])
RLPy.RMatrix4.AdjointTranspose(self)
Transpose of inverse times determinant.
Returns
Returns a new matrix - RLPy.RMatrix4
1 matrix4_value = RLPy.RMatrix4( 1, 2, 1, 1,
2 1, 1,-1,-2,
3 1,-1,-1, 2,
4 1,-2, 1,-1 )
5
6 matrix4_Adjoint_transpose = matrix4_value.AdjointTranspose()
7 col0_Adjoint_transpose = matrix4_Adjoint_transpose.GetColumn(0)
8
9 print(col0_Adjoint_transpose[0] == row0_Adjoint[0])
10 print(col0_Adjoint_transpose[1] == row0_Adjoint[1])
11 print(col0_Adjoint_transpose[2] == row0_Adjoint[2])
12 print(col0_Adjoint_transpose[3] == row0_Adjoint[3])
RLPy.RMatrix4.AlmostSame(self, kM, fThreshold)
compare each element of matrix with threshold(operator= is memory compare)
Parameters
kM[IN] Matrix to compare - RLPy.RMatrix4 fThreshold[IN] Threshold to compare - float
Returns
Return bool - bool
1 # No example
RLPy.RMatrix4.Determinant(self)
The matrix's determinant.
Returns
Returns the determinant of the matrix - float
1 matrix4_value = RLPy.RMatrix4( 1, 2, 1, 1,
2 1, 1,-1,-2,
3 1,-1,-1, 2,
4 1,-2, 1,-1 )
5
6 print(matrix4_value.Determinant())
RLPy.RMatrix4.E(self, args)
Get the matrix element for the specified index(0~15).
Parameters
nEle[IN] Index of the matrix - int
Returns
Returns the matrix element specified by index - float
1 matrix4 = RLPy.RMatrix4()
2 matrix4.MakeIdentity()
3 print(matrix4.E(0))
RLPy.RMatrix4.FromEulerAngle(self, Oreder, rx, ry, rz)
Rotation matrix from Euler angle.
Parameters
Oreder[IN] Euler order - RLPy.Rotation_Order rx[IN] Angle of x-axis in radians - float ry[IN] Angle of y-axis in radians - float rz[IN] Angle of z-axis in radians - float
Returns
Return a new matrix from specified axis angle - RLPy.RMatrix4
1 # No example
RLPy.RMatrix4.GetColumn(self, nC)
Get the matrix element for the specified column.
Parameters
nC[IN] Index of the column in the matrix - int
Returns
Returns the column vector of the matrix - RLPy.RVector4
1 # No example
RLPy.RMatrix4.GetRow(self, nR)
Get the matrix element for the specified row.
Parameters
nR[IN] Index of the row in the matrix - int
Returns
Returns the row vector of the matrix - RLPy.RVector4
1 matrix4 = RLPy.RMatrix4()
2 matrix4.MakeIdentity()
3 row0 = matrix4.GetRow(0)
4
5 print(row0[0])
6 print(row0[1])
7 print(row0[2])
8 print(row0[3])
RLPy.RMatrix4.GetSR(self)
Get scale and rotation part of the matrix.
Returns
Return a 3x3 matrix - RLPy.RMatrix3
1 # No example
RLPy.RMatrix4.GetTranslate(self)
Get translate of the matrix.
Returns
Return a translate vector - RLPy.RVector3
1 # No example
RLPy.RMatrix4.InfNorm(self)
InfNorm of the matrix.
Returns
Return InfNorm - float
1 # No example
RLPy.RMatrix4.Inverse(self)
Inverse of the matrix.
Returns
Returns a new matrix containing this matrix's inverse - RLPy.RMatrix4
1 # No example
RLPy.RMatrix4.InverseTranspose(self)
Transpose of inverse.
Returns
Returns a new matrix - RLPy.RMatrix4
1 matrix4_value = RLPy.RMatrix4( 1, 2, 1, 1,
2 1, 1,-1,-2,
3 1,-1,-1, 2,
4 1,-2, 1,-1 )
5
6 matrix4_inverse_transpose = matrix4_value.InverseTranspose()
7 col0_inverse_transpose = matrix4_inverse_transpose.GetColumn(0)
8
9 print(col0_inverse_transpose[0] == row0_inverse[0])
10 print(col0_inverse_transpose[1] == row0_inverse[1])
11 print(col0_inverse_transpose[2] == row0_inverse[2])
12 print(col0_inverse_transpose[3] == row0_inverse[3])
RLPy.RMatrix4.M(self, args)
Get the matrix element for the specified row and column.
Parameters
nRow[IN] Index of the row in the matrix - int nCol[IN] Index of the column in the matrix - int
Returns
Returns the matrix element specified by row and col - float
1 matrix4 = RLPy.RMatrix4()
2 matrix4.MakeIdentity()
3 print(matrix4.M(0,0)) #
RLPy.RMatrix4.MakeIdentity(self)
Sets the matrix to the identity.
Returns
this object - RLPy.RMatrix4
1 matrix4 = RLPy.RMatrix4()
2 matrix4.MakeIdentity()
RLPy.RMatrix4.MaxColumn(self)
Get maximum value of the column index in the matrix.
Returns
Return index of column of M containing maximum abs entry, or -1 if M = 0 - int
1 matrix4_column_value = RLPy.RMatrix4( 1, 2, 3,-5,
2 0, 0, 0, 0,
3 0, 0, 0, 0,
4 0, 0, 0, 0 )
5
6 print(matrix4_column_value.MaxColumn()) # column:3 -> abs(-5)
RLPy.RMatrix4.MaxRow(self)
Get maximum value of the row index in the matrix.
Returns
Return index of row of M containing maximum abs entry, or -1 if M = 0 - int
1 matrix4_row_value = RLPy.RMatrix4( 1, 0, 0, 0,
2 2, 0, 0, 0,
3 3, 0, 0, 0,
4 -5, 0, 0, 0 )
5
6 print(matrix4_value.MaxRow()) # Row:3 -> abs(-5)
RLPy.RMatrix4.OneNorm(self)
Norm of the matrix.
Returns
Return Norm - float
1 # No example
RLPy.RMatrix4.RotateAxisAngle(self, rkAxis, fAngle)
Rotation matrix from axis angle.
Parameters
rkAxis[IN] axis vector - RLPy.RVector3 fAngle[IN] angle in radians - float
Returns
Return a new matrix from specified axis angle - RLPy.RMatrix4
1 # No example
RLPy.RMatrix4.RotationX(self, fAngle)
Rotation matrix for rotations around x-axis.
Parameters
fAngle[IN] angle in radians - float
Returns
Return a new matrix of for rotations around x-axis - RLPy.RMatrix4
1 # No example
RLPy.RMatrix4.RotationY(self, fAngle)
Rotation matrix for rotations around y-axis.
Parameters
fAngle[IN] angle in radians - float
Returns
Return a new matrix of for rotations around y-axis - RLPy.RMatrix4
1 # No example
RLPy.RMatrix4.RotationZ(self, fAngle)
Rotation matrix for rotations around z-axis.
Parameters
fAngle[IN] angle in radians - float
Returns
Return a new matrix of for rotations around z-axis - RLPy.RMatrix4
1 # No example
RLPy.RMatrix4.SetSR(self, mSR)
Set scale and rotation part of the matrix.
Parameters
mSR[IN] 3x3 matrix - RLPy.RMatrix3
Returns
Return a new 4x4 matrix - RLPy.RMatrix4
1 # No example
RLPy.RMatrix4.SetTranslate(self, vTranslate)
Set translate of the matrix.
Parameters
vTranslate[IN] Translate vector - RLPy.RVector3
Returns
Return a new matrix with the specified translation - RLPy.RMatrix4
1 # No example
RLPy.RMatrix4.TimesTranspose(self, mM)
Multiplies of the transpose of the matrix.
Parameters
mM[IN] the matrix - RLPy.RMatrix4
Returns
Returns a new matrix. (this * M^T) - RLPy.RMatrix4
1 # No example
RLPy.RMatrix4.Transpose(self)
Transpose of the matrix.
Returns
Returns a new matrix containing this matrix's transpose - RLPy.RMatrix4
1 # No example
RLPy.RMatrix4.TransposeTimes(self, mM)
Multiplies of the transpose of the matrix.
Parameters
mM[IN] the matrix - RLPy.RMatrix4
Returns
Returns a new matrix. (this^T * mM) - RLPy.RMatrix4
1 # No example