Class PMatrices2x2D
java.lang.Object
com.io7m.jtensors.core.parameterized.matrices.PMatrices2x2D
Functions over PMatrix2x2D
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>
PMatrix2x2D<E, F> add
(PMatrix2x2D<A, B> m0, PMatrix2x2D<C, D> m1) Add the matricesm0
andm1
.static <A,
B> Vector2D column0
(PMatrix2x2D<A, B> m) static <A,
B> Vector2D column1
(PMatrix2x2D<A, B> m) static <A,
B> double determinant
(PMatrix2x2D<A, B> m) Calculate the determinant of the matrixm
.static <A,
B> PMatrix2x2D <A, B> identity()
The identity matrix.static <A,
B> Optional <PMatrix2x2D<B, A>> invert
(PMatrix2x2D<A, B> m) Calculate the inverse of the matrixm
.static <A,
B, C> PMatrix2x2D <A, C> multiply
(PMatrix2x2D<B, C> m0, PMatrix2x2D<A, B> m1) Multiply the matricesm0
andm1
.static <A,
B> PVector2D <B> multiplyVectorPost
(PMatrix2x2D<A, B> m, PVector2D<A> v) Multiply the vectorv
by the matrixm
.static Vector2D
Multiply the vectorv
by the matrixm
.static <A,
B> PMatrix2x2D <A, B> Construct a matrix from the column vectors(c0, c1)
.static <A,
B> PMatrix2x2D <A, B> Construct a matrix from the row vectors(r0, r1)
.static <A,
B> PMatrix2x2D <A, B> ofScale
(double x, double y) Construct a matrix that will scale by(x, y)
.static <A,
B> Vector2D row0
(PMatrix2x2D<A, B> m) static <A,
B> Vector2D row1
(PMatrix2x2D<A, B> m) static <A,
B, C, D>
PMatrix2x2D<C, D> scale
(PMatrix2x2D<A, B> m, double r) Scale the matrixm
byr
.static <A,
B, C, D, E, F>
PMatrix2x2D<E, F> subtract
(PMatrix2x2D<A, B> m0, PMatrix2x2D<C, D> m1) Subtract the matricesm0
andm1
.static <A,
B> PMatrix2x2D <A, B> static <A,
B> Matrix2x2D toUnparameterized
(PMatrix2x2D<A, B> m) static <A,
B> double trace
(PMatrix2x2D<A, B> m) Return the trace of the matrixm
.static <A,
B> PMatrix2x2D <A, B> transpose
(PMatrix2x2D<A, B> m) Calculate the transpose of the matrixm
.static <A,
B> PMatrix2x2D <A, B> withColumn
(PMatrix2x2D<A, B> m, int column, double r0, double r1) Set the columncolumn
ofm
to(r0, r1)
.static <A,
B> PMatrix2x2D <A, B> withRow
(PMatrix2x2D<A, B> m, int row, double c0, double c1) Set the rowrow
ofm
to(c0, c1)
.static <A,
B> PMatrix2x2D <A, B> zero()
The zero matrix.
-
Method Details
-
add
Add the matricesm0
andm1
.- 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 matricesm0
andm1
.- 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
v
by 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
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)
.- 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 1- Returns:
- A constructed matrix
-
ofRows
Construct a matrix from the row vectors(r0, r1)
.- 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 1- Returns:
- A constructed matrix
-
ofScale
Construct a matrix that will scale by(x, y)
.- 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 value- 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
-
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
-
scale
Scale the matrixm
byr
.- 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
public static <A,B, PMatrix2x2D<E,C, D, E, F> F> subtract(PMatrix2x2D<A, B> m0, PMatrix2x2D<C, D> m1) Subtract the matricesm0
andm1
.- 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> PMatrix2x2D<A,B> withColumn(PMatrix2x2D<A, B> m, int column, double r0, double r1) Set the columncolumn
ofm
to(r0, r1)
.- 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, 1]
r1
- The value of row 1 in the column- Returns:
- A matrix with the given row
-
withRow
Set the rowrow
ofm
to(c0, c1)
.- 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, 1]
c0
- The value of column 0 in the rowc1
- The value of column 1 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
m
but 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
m
with type parameters
-