public final class Matrices4x4F extends Object
Functions over Matrix4x4F values.
See "Mathematics for 3D Game Programming and Computer Graphics" 2nd Ed for the derivations of most of the code in this class (ISBN: 1-58450-277-0).
| Modifier and Type | Method and Description |
|---|---|
static Matrix4x4F |
add(Matrix4x4F m0,
Matrix4x4F m1)
Add the matrices
m0 and m1. |
static Vector4F |
column0(Matrix4x4F m) |
static Vector4F |
column1(Matrix4x4F m) |
static Vector4F |
column2(Matrix4x4F m) |
static Vector4F |
column3(Matrix4x4F m) |
static double |
determinant(Matrix4x4F m)
Calculate the determinant of the matrix
m. |
static Matrix4x4F |
identity()
The identity matrix.
|
static Optional<Matrix4x4F> |
invert(Matrix4x4F m)
Calculate the inverse of the matrix
m. |
static Matrix4x4F |
multiply(Matrix4x4F m0,
Matrix4x4F m1)
Multiply the matrices
m0 and m1. |
static Vector4F |
multiplyVectorPost(Matrix4x4F m,
Vector4F v)
Multiply the vector
v by the matrix m. |
static Matrix4x4F |
ofAxisAngle(double axis_x,
double axis_y,
double axis_z,
double angle)
Construct a matrix that will rotate by
angle radians around the axis (x, y, z). |
static Matrix4x4F |
ofColumns(Vector4F c0,
Vector4F c1,
Vector4F c2,
Vector4F c3)
Construct a matrix from the column vectors
(c0, c1, c2, c3). |
static Matrix4x4F |
ofRows(Vector4F r0,
Vector4F r1,
Vector4F r2,
Vector4F r3)
Construct a matrix from the row vectors
(r0, r1, r2, r3). |
static Matrix4x4F |
ofScale(double x,
double y,
double z)
Construct a matrix that will scale by
(x, y, z). |
static Matrix4x4F |
ofTranslation(double x,
double y,
double z)
Construct a matrix that will translate by
(x, y, z). |
static Vector4F |
row0(Matrix4x4F m) |
static Vector4F |
row1(Matrix4x4F m) |
static Vector4F |
row2(Matrix4x4F m) |
static Vector4F |
row3(Matrix4x4F m) |
static Matrix4x4F |
scale(Matrix4x4F m,
double r)
Scale the matrix
m by r. |
static Matrix4x4F |
subtract(Matrix4x4F m0,
Matrix4x4F m1)
Subtract the matrices
m0 and m1. |
static double |
trace(Matrix4x4F m)
Return the trace of the matrix
m. |
static Matrix4x4F |
transpose(Matrix4x4F m)
Calculate the transpose of the matrix
m. |
static Matrix4x4F |
withColumn(Matrix4x4F m,
int column,
float r0,
float r1,
float r2,
float r3)
Set the column
column of m to (r0, r1, r2, r3). |
static Matrix4x4F |
withRow(Matrix4x4F m,
int row,
float c0,
float c1,
float c2,
float c3)
Set the row
row of m to (c0, c1, c2, c3). |
static Matrix4x4F |
zero()
The zero matrix.
|
public static Matrix4x4F add(Matrix4x4F m0, Matrix4x4F m1)
m0 and m1.m0 - The left matrixm1 - The right matrixm0 + m1public static double determinant(Matrix4x4F m)
m.m - The matrixmpublic static Optional<Matrix4x4F> invert(Matrix4x4F m)
m.m - The matrixm, or nothing if no inverse existspublic static Matrix4x4F multiply(Matrix4x4F m0, Matrix4x4F m1)
m0 and m1.m0 - The left matrixm1 - The right matrixm0 * m1public static Vector4F multiplyVectorPost(Matrix4x4F m, Vector4F v)
Multiply the vector v by the matrix m.
This is post multiplication.
m - The matrixv - The vectorm * vpublic static Matrix4x4F ofColumns(Vector4F c0, Vector4F c1, Vector4F c2, Vector4F c3)
(c0, c1, c2, c3).c0 - The column 0c1 - The column 1c2 - The column 2c3 - The column 3public static Matrix4x4F ofRows(Vector4F r0, Vector4F r1, Vector4F r2, Vector4F r3)
(r0, r1, r2, r3).r0 - The row 0r1 - The row 1r2 - The row 2r3 - The row 3public static Matrix4x4F ofScale(double x, double y, double z)
(x, y, z).x - The X scaling valuey - The Y scaling valuez - The Z scaling valuepublic static Matrix4x4F ofTranslation(double x, double y, double z)
(x, y, z).x - The X scaling valuey - The Y scaling valuez - The Z scaling valuepublic static Matrix4x4F ofAxisAngle(double axis_x, double axis_y, double axis_z, double angle)
angle radians around the axis (x, y, z).angle - The angle in radiansaxis_x - The X axis valueaxis_y - The Y axis valueaxis_z - The Z axis valuepublic static Vector4F row0(Matrix4x4F m)
m - The matrixpublic static Vector4F row1(Matrix4x4F m)
m - The matrixpublic static Vector4F row2(Matrix4x4F m)
m - The matrixpublic static Vector4F row3(Matrix4x4F m)
m - The matrixpublic static Vector4F column0(Matrix4x4F m)
m - The matrixpublic static Vector4F column1(Matrix4x4F m)
m - The matrixpublic static Vector4F column2(Matrix4x4F m)
m - The matrixpublic static Vector4F column3(Matrix4x4F m)
m - The matrixpublic static Matrix4x4F scale(Matrix4x4F m, double r)
m by r.m - The matrixr - The scale factorm * rpublic static Matrix4x4F subtract(Matrix4x4F m0, Matrix4x4F m1)
m0 and m1.m0 - The left matrixm1 - The right matrixm0 - m1public static double trace(Matrix4x4F m)
m. The trace is defined as the sum
of the diagonal elements of the matrix.m - The matrixpublic static Matrix4x4F transpose(Matrix4x4F m)
m.m - The matrixmpublic static Matrix4x4F withColumn(Matrix4x4F m, int column, float r0, float r1, float r2, float r3)
column of m to (r0, r1, r2, r3).m - The matrixcolumn - The column index in the range [0, 3]
* @param r0 The value of row 0 in the columnr1 - The value of row 1 in the columnr2 - The value of row 2 in the columnr3 - The value of row 3 in the columnpublic static Matrix4x4F withRow(Matrix4x4F m, int row, float c0, float c1, float c2, float c3)
row of m to (c0, c1, c2, c3).m - The matrixrow - The row index in the range [0, 3]c0 - The value of column 0 in the rowc1 - The value of column 1 in the rowc2 - The value of column 2 in the rowc3 - The value of column 3 in the rowpublic static Matrix4x4F zero()
public static Matrix4x4F identity()
Copyright © 2017 <code@io7m.com> http://io7m.com