Base.Matrix class.
A 4x4 Matrix.
In particular, this matrix can represent an affine transformation, that is,
given a 3D vector x
, apply the transformation y = Mx + b, where the matrix
M
is a linear map and the vector b
is a translation.
y
can be obtained using a linear transformation represented by the 4x4 matrix
A
conformed by the augmented 3x4 matrix (M|b), augmented by row with
(0,0,0,1), therefore: (y, 1) = A(x, 1).
The following constructors are supported:
Matrix() Empty constructor.
Matrix(matrix) Copy constructor. matrix : Base.Matrix.
Matrix(*coef) Define from 16 coefficients of the 4x4 matrix. coef : sequence of float The sequence can have up to 16 elements which complete the matrix by rows.
Matrix(vector1, vector2, vector3, vector4) Define from four 3D vectors which represent the columns of the 3x4 submatrix, useful to represent an affine transformation. The fourth row is made up by (0,0,0,1). vector1 : Base.Vector vector2 : Base.Vector vector3 : Base.Vector vector4 : Base.Vector Default to (0,0,0). Optional.
The matrix elements.
The (1,1) matrix element.
The (1,2) matrix element.
The (1,3) matrix element.
The (1,4) matrix element.
The (2,1) matrix element.
The (2,2) matrix element.
The (2,3) matrix element.
The (2,4) matrix element.
The (3,1) matrix element.
The (3,2) matrix element.
The (3,3) matrix element.
The (3,4) matrix element.
The (4,1) matrix element.
The (4,2) matrix element.
The (4,3) matrix element.
The (4,4) matrix element.
analyze() -> str
Analyzes the type of transformation.
col(index) -> Base.Vector
Return the vector of a column, that is, the vector generated by the three first elements of the specified column.
index : int Required column index.
decompose() -> Base.Matrix, Base.Matrix, Base.Matrix, Base.Matrix\n Return a tuple of matrices representing shear, scale, rotation and move. So that matrix = move * rotation * scale * shear.
determinant() -> float
Compute the determinant of the matrix.
diagonal() -> Base.Vector
Return the diagonal of the 3x3 leading principal submatrix as vector.
hasScale(tol=0) -> ScaleType
Return an enum value of ScaleType. Possible values are: Uniform, NonUniformLeft, NonUniformRight, NoScaling or Other if it's not a scale matrix.
tol : float
inverse() -> Base.Matrix
Compute the inverse matrix, if possible.
invert() -> None
Compute the inverse matrix in-place, if possible.
isNull() -> bool
Check if this is the null matrix.
isOrthogonal(tol=1e-6) -> float
Checks if the matrix is orthogonal, i.e. M * M^T = k*I and returns the multiple of the identity matrix. If it's not orthogonal 0 is returned.
tol : float Tolerance used to check orthogonality.
isUnity([tol=0.0]) -> bool
Check if this is the unit matrix (4D identity matrix).
move(vector) -> None move(x, y, z) -> None
Move the matrix along a vector, equivalent to left multiply the matrix by a pure translation transformation.
vector : Base.Vector, tuple
x : float
x
translation.
y : float
y
translation.
z : float
z
translation.
multVec(vector) -> Base.Vector
Compute the transformed vector using the matrix.
vector : Base.Vector
multiply(matrix) -> Base.Matrix multiply(vector) -> Base.Vector
Right multiply the matrix by the given object.
If the argument is a vector, this is augmented to the 4D vector (vector
, 1).
matrix : Base.Matrix vector : Base.Vector
nullify() -> None
Make this the null matrix.
rotateX(angle) -> None
Rotate around X axis.
angle : float Angle in radians.
rotateY(angle) -> None
Rotate around Y axis.
angle : float Angle in radians.
rotateZ(angle) -> None
Rotate around Z axis.
angle : float Angle in radians.
row(index) -> Base.Vector
Return the vector of a row, that is, the vector generated by the three first elements of the specified row.
index : int Required row index.
scale(vector) -> None scale(x, y, z) -> None scale(factor) -> None
Scale the first three rows of the matrix.
vector : Base.Vector x : float First row factor scale. y : float Second row factor scale. z : float Third row factor scale. factor : float global factor scale.
setCol(index, vector) -> None
Set the vector of a column, that is, the three first elements of the specified column by index.
index : int Required column index. vector : Base.Vector
setDiagonal(vector) -> None
Set the diagonal of the 3x3 leading principal submatrix.
vector : Base.Vector
setRow(index, vector) -> None
Set the vector of a row, that is, the three first elements of the specified row by index.
index : int Required row index. vector : Base.Vector
submatrix(dim) -> Base.Matrix
Get the leading principal submatrix of the given dimension.
The (4 - dim
) remaining dimensions are completed with the
corresponding identity matrix.
dim : int Dimension parameter must be in the range [1,4].
transform(vector, matrix2) -> None
Transform the matrix around a given point.
Equivalent to left multiply the matrix by TMT_inv, where M is matrix2
, T the
translation generated by vector
and T_inv the inverse translation.
For example, if matrix2
is a rotation, the result is the transformation generated
by the current matrix followed by a rotation around the point represented by vector
.
vector : Base.Vector matrix2 : Base.Matrix
transpose() -> None
Transpose the matrix in-place.
transposed() -> Base.Matrix
Returns a transposed copy of this matrix.
unity() -> None
Make this matrix to unity (4D identity matrix).
⏵ documentation index > API > [Poweruser Documentation](Category_Poweruser Documentation.md) > Matrix API