Matrix44
open class Matrix44
kotlin.Any | |
↳ | android.graphics.Matrix44 |
The Matrix44 class holds a 4x4 matrix for transforming coordinates. It is similar to Matrix
, and should be used when you want to manipulate the canvas in 3D. Values are kept in row-major order. The values and operations are treated as column vectors.
Summary
Public constructors | |
---|---|
Matrix44() The default Matrix44 constructor will instantiate an identity matrix. |
|
Creates and returns a Matrix44 by taking the 3x3 Matrix and placing it on the 0 of the z-axis by setting row [ a b c ] [ a b 0 c ] [ d e f ] -> [ d e 0 f ] [ g h i ] [ 0 0 1 0 ] [ g h 0 i ] |
Public methods | |
---|---|
open Matrix44 |
Multiplies `this` matrix (A) and provided Matrix (B) in the order of A * B. |
open Boolean | |
open Float |
Gets the value at the matrix's row and column. |
open Unit |
getValues(dst: FloatArray) Copies matrix values into the provided array in row-major order. |
open Int |
hashCode() |
open Boolean |
invert() Inverts the Matrix44, then return true if successful, false if unable to invert. |
open Boolean |
Returns true if Matrix44 is equal to identity matrix. |
open FloatArray |
Multiplies (x, y, z, w) vector by the Matrix44, then returns the new (x, y, z, w). |
open Unit |
Multiplies (x, y, z, w) vector by the Matrix44, then returns the new (x, y, z, w). |
open Unit |
reset() Sets the Matrix44 to the identity matrix. |
open Matrix44 |
Applies a rotation around a given axis, then returns self. |
open Matrix44 |
Applies scaling factors to `this` Matrix44, then returns self. |
open Unit |
Sets the value at the matrix's row and column to the provided value. |
open Unit |
setValues(src: FloatArray) Replaces the Matrix's values with the values in the provided array. |
open String |
toString() |
open Matrix44 |
Applies a translation to `this` Matrix44, then returns self. |
Public constructors
Matrix44
Matrix44()
The default Matrix44 constructor will instantiate an identity matrix.
Matrix44
Matrix44(mat: Matrix)
Creates and returns a Matrix44 by taking the 3x3 Matrix and placing it on the 0 of the z-axis by setting row 2
and column 2
to the identity as seen in the following operation:
[ a b c ] [ a b 0 c ] [ d e f ] -> [ d e 0 f ] [ g h i ] [ 0 0 1 0 ] [ g h 0 i ]
Parameters | |
---|---|
mat |
Matrix: A 3x3 Matrix to be converted (original Matrix will not be changed) This value cannot be null . |
Public methods
concat
open fun concat(b: Matrix44): Matrix44
Multiplies `this` matrix (A) and provided Matrix (B) in the order of A * B. The result is saved in `this` Matrix.
Parameters | |
---|---|
b |
Matrix44: The second Matrix in the concatenation operation This value cannot be null . |
Return | |
---|---|
Matrix44 |
A reference to this Matrix, which can be used to chain Matrix operations This value cannot be null . |
equals
open fun equals(other: Any?): Boolean
Parameters | |
---|---|
obj |
the reference object with which to compare. |
Return | |
---|---|
Boolean |
true if this object is the same as the obj argument; false otherwise. |
get
open fun get(
row: Int,
col: Int
): Float
Gets the value at the matrix's row and column.
Parameters | |
---|---|
row |
Int: An integer from 0 to 3 indicating the row of the value to get Value is between 0 and 3 inclusive |
col |
Int: An integer from 0 to 3 indicating the column of the value to get Value is between 0 and 3 inclusive |
getValues
open fun getValues(dst: FloatArray): Unit
Copies matrix values into the provided array in row-major order.
Parameters | |
---|---|
dst |
FloatArray: The float array where values will be copied, must be of length 16 This value cannot be null . |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
if the destination float array is not of length 16 |
hashCode
open fun hashCode(): Int
Return | |
---|---|
Int |
a hash code value for this object. |
invert
open fun invert(): Boolean
Inverts the Matrix44, then return true if successful, false if unable to invert.
Return | |
---|---|
Boolean |
true on success, false otherwise |
isIdentity
open fun isIdentity(): Boolean
Returns true if Matrix44 is equal to identity matrix.
map
open fun map(
x: Float,
y: Float,
z: Float,
w: Float
): FloatArray
Multiplies (x, y, z, w) vector by the Matrix44, then returns the new (x, y, z, w). Users should set w
to 1 to indicate the coordinates are normalized.
Return | |
---|---|
FloatArray |
An array of length 4 that represents the x, y, z, w (where w is perspective) value after multiplying x, y, z, 1 by the matrix This value cannot be null . |
map
open fun map(
x: Float,
y: Float,
z: Float,
w: Float,
dst: FloatArray
): Unit
Multiplies (x, y, z, w) vector by the Matrix44, then returns the new (x, y, z, w). Users should set w
to 1 to indicate the coordinates are normalized.
Parameters | |
---|---|
dst |
FloatArray: This value cannot be null . |
rotate
open fun rotate(
deg: Float,
xComp: Float,
yComp: Float,
zComp: Float
): Matrix44
Applies a rotation around a given axis, then returns self. x
, y
, z
represent the axis by which to rotate around. For example, pass in 1, 0, 0
to rotate around the x-axis. The axis provided will be normalized.
Parameters | |
---|---|
deg |
Float: Amount in degrees to rotate the matrix about the x-axis |
xComp |
Float: X component of the rotation axis |
yComp |
Float: Y component of the rotation axis |
zComp |
Float: Z component of the rotation axis |
Return | |
---|---|
Matrix44 |
A reference to this Matrix, which can be used to chain Matrix operations This value cannot be null . |
scale
open fun scale(
x: Float,
y: Float,
z: Float
): Matrix44
Applies scaling factors to `this` Matrix44, then returns self. Pass 1s for no change.
Parameters | |
---|---|
x |
Float: Scaling factor for the x-axis |
y |
Float: Scaling factor for the y-axis |
z |
Float: Scaling factor for the z-axis |
Return | |
---|---|
Matrix44 |
A reference to this Matrix, which can be used to chain Matrix operations This value cannot be null . |
set
open fun set(
row: Int,
col: Int,
val: Float
): Unit
Sets the value at the matrix's row and column to the provided value.
Parameters | |
---|---|
row |
Int: An integer from 0 to 3 indicating the row of the value to change Value is between 0 and 3 inclusive |
col |
Int: An integer from 0 to 3 indicating the column of the value to change Value is between 0 and 3 inclusive |
val |
Float: The value the element at the specified index will be set to |
setValues
open fun setValues(src: FloatArray): Unit
Replaces the Matrix's values with the values in the provided array.
Parameters | |
---|---|
src |
FloatArray: A float array of length 16. Floats are treated in row-major order This value cannot be null . |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
if the destination float array is not of length 16 |
toString
open fun toString(): String
Return | |
---|---|
String |
a string representation of the object. |
translate
open fun translate(
x: Float,
y: Float,
z: Float
): Matrix44
Applies a translation to `this` Matrix44, then returns self.
Parameters | |
---|---|
x |
Float: Translation for the x-axis |
y |
Float: Translation for the y-axis |
z |
Float: Translation for the z-axis |
Return | |
---|---|
Matrix44 |
A reference to this Matrix, which can be used to chain Matrix operations This value cannot be null . |