Class Matrices4x4D
java.lang.Object
com.io7m.jtensors.core.unparameterized.matrices.Matrices4x4D
public final class Matrices4x4D
extends java.lang.Object
Functions over Matrix4x4D
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).
- Since:
- 8.0.0
-
Method Summary
Modifier and Type Method Description static Matrix4x4D
add(Matrix4x4D m0, Matrix4x4D m1)
Add the matricesm0
andm1
.static Vector4D
column0(Matrix4x4D m)
static Vector4D
column1(Matrix4x4D m)
static Vector4D
column2(Matrix4x4D m)
static Vector4D
column3(Matrix4x4D m)
static double
determinant(Matrix4x4D m)
Calculate the determinant of the matrixm
.static Matrix4x4D
identity()
The identity matrix.static java.util.Optional<Matrix4x4D>
invert(Matrix4x4D m)
Calculate the inverse of the matrixm
.static Matrix4x4D
multiply(Matrix4x4D m0, Matrix4x4D m1)
Multiply the matricesm0
andm1
.static Vector4D
multiplyVectorPost(Matrix4x4D m, Vector4D v)
Multiply the vectorv
by the matrixm
.static Matrix4x4D
ofAxisAngle(double axis_x, double axis_y, double axis_z, double angle)
Construct a matrix that will rotate byangle
radians around the axis(x, y, z)
.static Matrix4x4D
ofColumns(Vector4D c0, Vector4D c1, Vector4D c2, Vector4D c3)
Construct a matrix from the column vectors(c0, c1, c2, c3)
.static Matrix4x4D
ofRows(Vector4D r0, Vector4D r1, Vector4D r2, Vector4D r3)
Construct a matrix from the row vectors(r0, r1, r2, r3)
.static Matrix4x4D
ofScale(double x, double y, double z)
Construct a matrix that will scale by(x, y, z)
.static Matrix4x4D
ofTranslation(double x, double y, double z)
Construct a matrix that will translate by(x, y, z)
.static Vector4D
row0(Matrix4x4D m)
static Vector4D
row1(Matrix4x4D m)
static Vector4D
row2(Matrix4x4D m)
static Vector4D
row3(Matrix4x4D m)
static Matrix4x4D
scale(Matrix4x4D m, double r)
Scale the matrixm
byr
.static Matrix4x4D
subtract(Matrix4x4D m0, Matrix4x4D m1)
Subtract the matricesm0
andm1
.static double
trace(Matrix4x4D m)
Return the trace of the matrixm
.static Matrix4x4D
transpose(Matrix4x4D m)
Calculate the transpose of the matrixm
.static Matrix4x4D
withColumn(Matrix4x4D m, int column, double r0, double r1, double r2, double r3)
Set the columncolumn
ofm
to(r0, r1, r2, r3)
.static Matrix4x4D
withRow(Matrix4x4D m, int row, double c0, double c1, double c2, double c3)
Set the rowrow
ofm
to(c0, c1, c2, c3)
.static Matrix4x4D
zero()
The zero matrix.
-
Method Details
-
add
Add the matricesm0
andm1
.- Parameters:
m0
- The left matrixm1
- The right matrix- Returns:
m0 + m1
-
determinant
Calculate the determinant of the matrixm
.- Parameters:
m
- The matrix- Returns:
- The determinant of
m
-
invert
Calculate the inverse of the matrixm
.- Parameters:
m
- The matrix- Returns:
- The inverse of
m
, or nothing if no inverse exists
-
multiply
Multiply the matricesm0
andm1
.- Parameters:
m0
- The left matrixm1
- The right matrix- Returns:
m0 * m1
-
multiplyVectorPost
Multiply the vector
v
by the matrixm
.This is post multiplication.
- Parameters:
m
- The matrixv
- The vector- Returns:
m * v
-
ofColumns
Construct a matrix from the column vectors(c0, c1, c2, c3)
.- Parameters:
c0
- The column 0c1
- The column 1c2
- The column 2c3
- The column 3- Returns:
- A constructed matrix
-
ofRows
Construct a matrix from the row vectors(r0, r1, r2, r3)
.- Parameters:
r0
- The row 0r1
- The row 1r2
- The row 2r3
- The row 3- Returns:
- A constructed matrix
-
ofScale
Construct a matrix that will scale by(x, y, z)
.- Parameters:
x
- The X scaling valuey
- The Y scaling valuez
- The Z scaling value- Returns:
- A constructed matrix
-
ofTranslation
Construct a matrix that will translate by(x, y, z)
.- Parameters:
x
- The X scaling valuey
- The Y scaling valuez
- The Z scaling value- Returns:
- A constructed matrix
-
ofAxisAngle
Construct a matrix that will rotate byangle
radians around the axis(x, y, z)
.- Parameters:
angle
- The angle in radiansaxis_x
- The X axis valueaxis_y
- The Y axis valueaxis_z
- The Z axis value- Returns:
- A constructed matrix
-
row0
- Parameters:
m
- The matrix- Returns:
- Row 0 of the matrix
-
row1
- Parameters:
m
- The matrix- Returns:
- Row 1 of the matrix
-
row2
- Parameters:
m
- The matrix- Returns:
- Row 2 of the matrix
-
row3
- Parameters:
m
- The matrix- Returns:
- Row 3 of the matrix
-
column0
- Parameters:
m
- The matrix- Returns:
- Column 0 of the matrix
-
column1
- Parameters:
m
- The matrix- Returns:
- Column 1 of the matrix
-
column2
- Parameters:
m
- The matrix- Returns:
- Column 2 of the matrix
-
column3
- Parameters:
m
- The matrix- Returns:
- Column 3 of the matrix
-
scale
Scale the matrixm
byr
.- Parameters:
m
- The matrixr
- The scale factor- Returns:
m * r
-
subtract
Subtract the matricesm0
andm1
.- Parameters:
m0
- The left matrixm1
- The right matrix- Returns:
m0 - m1
-
trace
Return the trace of the matrixm
. The trace is defined as the sum of the diagonal elements of the matrix.- Parameters:
m
- The matrix- Returns:
- The trace of the matrix
-
transpose
Calculate the transpose of the matrixm
.- Parameters:
m
- The matrix- Returns:
- The transpose of
m
-
withColumn
public static Matrix4x4D withColumn(Matrix4x4D m, int column, double r0, double r1, double r2, double r3)Set the columncolumn
ofm
to(r0, r1, r2, r3)
.- Parameters:
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 column- Returns:
- A matrix with the given row
-
withRow
public static Matrix4x4D withRow(Matrix4x4D m, int row, double c0, double c1, double c2, double c3)Set the rowrow
ofm
to(c0, c1, c2, c3)
.- Parameters:
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 row- Returns:
- A matrix with the given row
-
zero
The zero matrix.- Returns:
- A matrix with all zero components
-
identity
The identity matrix.- Returns:
- A matrix with all diagonal components set to 1 and all other components set to 0.
-