Class PMatrices4x4F
java.lang.Object
com.io7m.jtensors.core.parameterized.matrices.PMatrices4x4F
Functions over PMatrix4x4F 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 TypeMethodDescriptionstatic <A,B, C, D, E, F>
PMatrix4x4F<E, F> add(PMatrix4x4F<A, B> m0, PMatrix4x4F<C, D> m1) Add the matricesm0andm1.static <A,B> Vector4F column0(PMatrix4x4F<A, B> m) static <A,B> Vector4F column1(PMatrix4x4F<A, B> m) static <A,B> Vector4F column2(PMatrix4x4F<A, B> m) static <A,B> Vector4F column3(PMatrix4x4F<A, B> m) static <A,B> double determinant(PMatrix4x4F<A, B> m) Calculate the determinant of the matrixm.static <A,B> PMatrix4x4F <A, B> identity()The identity matrix.static <A,B> Optional <PMatrix4x4F<B, A>> invert(PMatrix4x4F<A, B> m) Calculate the inverse of the matrixm.static <A,B, C> PMatrix4x4F <A, C> multiply(PMatrix4x4F<B, C> m0, PMatrix4x4F<A, B> m1) Multiply the matricesm0andm1.static <A,B> PVector4F <B> multiplyVectorPost(PMatrix4x4F<A, B> m, PVector4F<A> v) Multiply the vectorvby the matrixm.static Vector4FMultiply the vectorvby the matrixm.static <A,B> PMatrix4x4F <A, B> ofAxisAngle(double axis_x, double axis_y, double axis_z, double angle) Construct a matrix that will rotate byangleradians around the axis(x, y, z).static <A,B> PMatrix4x4F <A, B> Construct a matrix from the column vectors(c0, c1, c2, c3).static <A,B> PMatrix4x4F <A, B> Construct a matrix from the row vectors(r0, r1, r2, r3).static <A,B> PMatrix4x4F <A, B> ofScale(double x, double y, double z) Construct a matrix that will scale by(x, y, z).static <A,B> PMatrix4x4F <A, B> ofTranslation(double x, double y, double z) Construct a matrix that will translate by(x, y, z).static <A,B> Vector4F row0(PMatrix4x4F<A, B> m) static <A,B> Vector4F row1(PMatrix4x4F<A, B> m) static <A,B> Vector4F row2(PMatrix4x4F<A, B> m) static <A,B> Vector4F row3(PMatrix4x4F<A, B> m) static <A,B, C, D> PMatrix4x4F <C, D> scale(PMatrix4x4F<A, B> m, double r) Scale the matrixmbyr.static <A,B, C, D, E, F>
PMatrix4x4F<E, F> subtract(PMatrix4x4F<A, B> m0, PMatrix4x4F<C, D> m1) Subtract the matricesm0andm1.static <A,B> PMatrix4x4F <A, B> static <A,B> Matrix4x4F toUnparameterized(PMatrix4x4F<A, B> m) static <A,B> double trace(PMatrix4x4F<A, B> m) Return the trace of the matrixm.static <A,B> PMatrix4x4F <A, B> transpose(PMatrix4x4F<A, B> m) Calculate the transpose of the matrixm.static <A,B> PMatrix4x4F <A, B> withColumn(PMatrix4x4F<A, B> m, int column, float r0, float r1, float r2, float r3) Set the columncolumnofmto(r0, r1, r2, r3).static <A,B> PMatrix4x4F <A, B> withRow(PMatrix4x4F<A, B> m, int row, float c0, float c1, float c2, float c3) Set the rowrowofmto(c0, c1, c2, c3).static <A,B> PMatrix4x4F <A, B> zero()The zero matrix.
-
Method Details
-
add
Add the matricesm0andm1.- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a target coordinate system)C- A phantom type parameter (possibly representing a source coordinate system)D- A phantom type parameter (possibly representing a target coordinate system)E- A phantom type parameter (possibly representing a source coordinate system)F- A phantom type parameter (possibly representing a target coordinate system)- Parameters:
m0- The left matrixm1- The right matrix- Returns:
m0 + m1
-
determinant
Calculate the determinant of the matrixm.- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a target coordinate system)- Parameters:
m- The matrix- Returns:
- The determinant of
m
-
invert
Calculate the inverse of the matrixm.- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a target coordinate system)- Parameters:
m- The matrix- Returns:
- The inverse of
m, or nothing if no inverse exists
-
multiply
Multiply the matricesm0andm1.- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a target coordinate system)C- A phantom type parameter (possibly representing a source coordinate system)- Parameters:
m0- The left matrixm1- The right matrix- Returns:
m0 * m1
-
multiplyVectorPost
Multiply the vector
vby the matrixm.This is post multiplication.
- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a target coordinate system)- Parameters:
m- The matrixv- The vector- Returns:
m * v
-
multiplyVectorPost
Multiply the vector
vby 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).- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a target coordinate system)- 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).- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a target coordinate system)- 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).- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a target coordinate system)- 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).- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a target coordinate system)- Parameters:
x- The X scaling valuey- The Y scaling valuez- The Z scaling value- Returns:
- A constructed matrix
-
ofAxisAngle
public static <A,B> PMatrix4x4F<A,B> ofAxisAngle(double axis_x, double axis_y, double axis_z, double angle) Construct a matrix that will rotate byangleradians around the axis(x, y, z).- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a target coordinate system)- Parameters:
axis_x- The X axis valueaxis_y- The Y axis valueaxis_z- The Z axis valueangle- The angle in radians- Returns:
- A constructed matrix
-
row0
- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a source coordinate system)- Parameters:
m- The matrix- Returns:
- Row 0 of the matrix
-
row1
- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a source coordinate system)- Parameters:
m- The matrix- Returns:
- Row 1 of the matrix
-
row2
- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a source coordinate system)- Parameters:
m- The matrix- Returns:
- Row 2 of the matrix
-
row3
- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a source coordinate system)- Parameters:
m- The matrix- Returns:
- Row 3 of the matrix
-
column0
- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a source coordinate system)- Parameters:
m- The matrix- Returns:
- Column 0 of the matrix
-
column1
- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a source coordinate system)- Parameters:
m- The matrix- Returns:
- Column 1 of the matrix
-
column2
- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a source coordinate system)- Parameters:
m- The matrix- Returns:
- Column 2 of the matrix
-
column3
- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a source coordinate system)- Parameters:
m- The matrix- Returns:
- Column 3 of the matrix
-
scale
Scale the matrixmbyr.- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a target coordinate system)C- A phantom type parameter (possibly representing a source coordinate system)D- A phantom type parameter (possibly representing a target coordinate system)- Parameters:
m- The matrixr- The scale factor- Returns:
m * r
-
subtract
Subtract the matricesm0andm1.- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a target coordinate system)C- A phantom type parameter (possibly representing a source coordinate system)D- A phantom type parameter (possibly representing a target coordinate system)E- A phantom type parameter (possibly representing a source coordinate system)F- A phantom type parameter (possibly representing a target coordinate system)- 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.- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a target coordinate system)- Parameters:
m- The matrix- Returns:
- The trace of the matrix
-
transpose
Calculate the transpose of the matrixm.- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a target coordinate system)- Parameters:
m- The matrix- Returns:
- The transpose of
m
-
withColumn
public static <A,B> PMatrix4x4F<A,B> withColumn(PMatrix4x4F<A, B> m, int column, float r0, float r1, float r2, float r3) Set the columncolumnofmto(r0, r1, r2, r3).- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a target coordinate system) * @param r0 The value of row 0 in the column- Parameters:
m- The matrixcolumn- The column index in the range[0, 3]r1- 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 <A,B> PMatrix4x4F<A,B> withRow(PMatrix4x4F<A, B> m, int row, float c0, float c1, float c2, float c3) Set the rowrowofmto(c0, c1, c2, c3).- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a target coordinate system)- 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.- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a target coordinate system)- Returns:
- A matrix with all zero components
-
identity
The identity matrix.- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a target coordinate system)- Returns:
- A matrix with all diagonal components set to 1 and all other components set to 0.
-
toUnparameterized
- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a target coordinate system)- Parameters:
m- The input matrix- Returns:
- A matrix equal to
mbut without type parameters
-
toParameterized
- Type Parameters:
A- A phantom type parameter (possibly representing a source coordinate system)B- A phantom type parameter (possibly representing a target coordinate system)- Parameters:
m- The input matrix- Returns:
- A matrix equal to
mwith type parameters
-