public final class PMatrices3x3D extends Object
Functions over PMatrix3x3D 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 | Description |
|---|---|---|
static <A,B,C,D,E,F> |
add(PMatrix3x3D<A,B> m0,
PMatrix3x3D<C,D> m1) |
Add the matrices
m0 and m1. |
static <A,B> Vector3D |
column0(PMatrix3x3D<A,B> m) |
|
static <A,B> Vector3D |
column1(PMatrix3x3D<A,B> m) |
|
static <A,B> Vector3D |
column2(PMatrix3x3D<A,B> m) |
|
static <A,B> double |
determinant(PMatrix3x3D<A,B> m) |
Calculate the determinant of the matrix
m. |
static <A,B> PMatrix3x3D<A,B> |
identity() |
The identity matrix.
|
static <A,B> Optional<PMatrix3x3D<B,A>> |
invert(PMatrix3x3D<A,B> m) |
Calculate the inverse of the matrix
m. |
static <A,B,C> PMatrix3x3D<A,C> |
multiply(PMatrix3x3D<B,C> m0,
PMatrix3x3D<A,B> m1) |
Multiply the matrices
m0 and m1. |
static <A,B> PVector3D<B> |
multiplyVectorPost(PMatrix3x3D<A,B> m,
PVector3D<A> v) |
Multiply the vector
v by the matrix m. |
static Vector3D |
multiplyVectorPost(PMatrix3x3D m,
Vector3D v) |
Multiply the vector
v by the matrix m. |
static <A,B> PMatrix3x3D<A,B> |
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 <A,B> PMatrix3x3D<A,B> |
ofColumns(Vector3D c0,
Vector3D c1,
Vector3D c2) |
Construct a matrix from the column vectors
(c0, c1, c2). |
static <A,B> PMatrix3x3D<A,B> |
ofRows(Vector3D r0,
Vector3D r1,
Vector3D r2) |
Construct a matrix from the row vectors
(r0, r1, r2). |
static <A,B> PMatrix3x3D<A,B> |
ofScale(double x,
double y,
double z) |
Construct a matrix that will scale by
(x, y, z). |
static <A,B> Vector3D |
row0(PMatrix3x3D<A,B> m) |
|
static <A,B> Vector3D |
row1(PMatrix3x3D<A,B> m) |
|
static <A,B> Vector3D |
row2(PMatrix3x3D<A,B> m) |
|
static <A,B,C,D> PMatrix3x3D<C,D> |
scale(PMatrix3x3D<A,B> m,
double r) |
Scale the matrix
m by r. |
static <A,B,C,D,E,F> |
subtract(PMatrix3x3D<A,B> m0,
PMatrix3x3D<C,D> m1) |
Subtract the matrices
m0 and m1. |
static <A,B> PMatrix3x3D<A,B> |
toParameterized(Matrix3x3D m) |
|
static <A,B> Matrix3x3D |
toUnparameterized(PMatrix3x3D<A,B> m) |
|
static <A,B> double |
trace(PMatrix3x3D<A,B> m) |
Return the trace of the matrix
m. |
static <A,B> PMatrix3x3D<A,B> |
transpose(PMatrix3x3D<A,B> m) |
Calculate the transpose of the matrix
m. |
static <A,B> PMatrix3x3D<A,B> |
withColumn(PMatrix3x3D<A,B> m,
int column,
double r0,
double r1,
double r2) |
Set the column
column of m to (r0, r1, r2). |
static <A,B> PMatrix3x3D<A,B> |
withRow(PMatrix3x3D<A,B> m,
int row,
double c0,
double c1,
double c2) |
Set the row
row of m to (c0, c1, c2). |
static <A,B> PMatrix3x3D<A,B> |
zero() |
The zero matrix.
|
public static <A,B,C,D,E,F> PMatrix3x3D<E,F> add(PMatrix3x3D<A,B> m0, PMatrix3x3D<C,D> m1)
m0 and m1.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)m0 - The left matrixm1 - The right matrixm0 + m1public static <A,B> double determinant(PMatrix3x3D<A,B> m)
m.A - A phantom type parameter (possibly representing a source coordinate system)B - A phantom type parameter (possibly representing a target coordinate system)m - The matrixmpublic static <A,B> Optional<PMatrix3x3D<B,A>> invert(PMatrix3x3D<A,B> m)
m.A - A phantom type parameter (possibly representing a source coordinate system)B - A phantom type parameter (possibly representing a target coordinate system)m - The matrixm, or nothing if no inverse existspublic static <A,B,C> PMatrix3x3D<A,C> multiply(PMatrix3x3D<B,C> m0, PMatrix3x3D<A,B> m1)
m0 and m1.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)m0 - The left matrixm1 - The right matrixm0 * m1public static <A,B> PVector3D<B> multiplyVectorPost(PMatrix3x3D<A,B> m, PVector3D<A> v)
Multiply the vector v by the matrix m.
This is post multiplication.
A - A phantom type parameter (possibly representing a source coordinate system)B - A phantom type parameter (possibly representing a target coordinate system)m - The matrixv - The vectorm * vpublic static Vector3D multiplyVectorPost(PMatrix3x3D m, Vector3D v)
Multiply the vector v by the matrix m.
This is post multiplication.
m - The matrixv - The vectorm * vpublic static <A,B> PMatrix3x3D<A,B> ofColumns(Vector3D c0, Vector3D c1, Vector3D c2)
(c0, c1, c2).A - A phantom type parameter (possibly representing a source coordinate system)B - A phantom type parameter (possibly representing a target coordinate system)c0 - The column 0c1 - The column 1c2 - The column 2public static <A,B> PMatrix3x3D<A,B> ofRows(Vector3D r0, Vector3D r1, Vector3D r2)
(r0, r1, r2).A - A phantom type parameter (possibly representing a source coordinate system)B - A phantom type parameter (possibly representing a target coordinate system)r0 - The row 0r1 - The row 1r2 - The row 2public static <A,B> PMatrix3x3D<A,B> ofScale(double x, double y, double z)
(x, y, z).A - A phantom type parameter (possibly representing a source coordinate system)B - A phantom type parameter (possibly representing a target coordinate system)x - The X scaling valuey - The Y scaling valuez - The Z scaling valuepublic static <A,B> PMatrix3x3D<A,B> ofAxisAngle(double axis_x, double axis_y, double axis_z, double angle)
angle radians around the axis (x, y, z).A - A phantom type parameter (possibly representing a source coordinate system)B - A phantom type parameter (possibly representing a target coordinate system)angle - The angle in radiansaxis_x - The X axis valueaxis_y - The Y axis valueaxis_z - The Z axis valuepublic static <A,B> Vector3D row0(PMatrix3x3D<A,B> m)
A - A phantom type parameter (possibly representing a source coordinate system)B - A phantom type parameter (possibly representing a source coordinate system)m - The matrixpublic static <A,B> Vector3D row1(PMatrix3x3D<A,B> m)
A - A phantom type parameter (possibly representing a source coordinate system)B - A phantom type parameter (possibly representing a source coordinate system)m - The matrixpublic static <A,B> Vector3D row2(PMatrix3x3D<A,B> m)
A - A phantom type parameter (possibly representing a source coordinate system)B - A phantom type parameter (possibly representing a source coordinate system)m - The matrixpublic static <A,B> Vector3D column0(PMatrix3x3D<A,B> m)
A - A phantom type parameter (possibly representing a source coordinate system)B - A phantom type parameter (possibly representing a source coordinate system)m - The matrixpublic static <A,B> Vector3D column1(PMatrix3x3D<A,B> m)
A - A phantom type parameter (possibly representing a source coordinate system)B - A phantom type parameter (possibly representing a source coordinate system)m - The matrixpublic static <A,B> Vector3D column2(PMatrix3x3D<A,B> m)
A - A phantom type parameter (possibly representing a source coordinate system)B - A phantom type parameter (possibly representing a source coordinate system)m - The matrixpublic static <A,B,C,D> PMatrix3x3D<C,D> scale(PMatrix3x3D<A,B> m, double r)
m by r.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)m - The matrixr - The scale factorm * rpublic static <A,B,C,D,E,F> PMatrix3x3D<E,F> subtract(PMatrix3x3D<A,B> m0, PMatrix3x3D<C,D> m1)
m0 and m1.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)m0 - The left matrixm1 - The right matrixm0 - m1public static <A,B> double trace(PMatrix3x3D<A,B> m)
m. The trace is defined as the sum
of the diagonal elements of the matrix.A - A phantom type parameter (possibly representing a source coordinate system)B - A phantom type parameter (possibly representing a target coordinate system)m - The matrixpublic static <A,B> PMatrix3x3D<A,B> transpose(PMatrix3x3D<A,B> m)
m.A - A phantom type parameter (possibly representing a source coordinate system)B - A phantom type parameter (possibly representing a target coordinate system)m - The matrixmpublic static <A,B> PMatrix3x3D<A,B> withColumn(PMatrix3x3D<A,B> m, int column, double r0, double r1, double r2)
column of m to (r0, r1, r2).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 columnm - The matrixcolumn - The column index in the range [0, 2]r1 - The value of row 1 in the columnr2 - The value of row 2 in the columnpublic static <A,B> PMatrix3x3D<A,B> withRow(PMatrix3x3D<A,B> m, int row, double c0, double c1, double c2)
row of m to (c0, c1, c2).A - A phantom type parameter (possibly representing a source coordinate system)B - A phantom type parameter (possibly representing a target coordinate system)m - The matrixrow - The row index in the range [0, 2]c0 - The value of column 0 in the rowc1 - The value of column 1 in the rowc2 - The value of column 2 in the rowpublic static <A,B> PMatrix3x3D<A,B> zero()
A - A phantom type parameter (possibly representing a source coordinate system)B - A phantom type parameter (possibly representing a target coordinate system)public static <A,B> PMatrix3x3D<A,B> identity()
A - A phantom type parameter (possibly representing a source coordinate system)B - A phantom type parameter (possibly representing a target coordinate system)public static <A,B> Matrix3x3D toUnparameterized(PMatrix3x3D<A,B> m)
A - A phantom type parameter (possibly representing a source coordinate system)B - A phantom type parameter (possibly representing a target coordinate system)m - The input matrixm but without type parameterspublic static <A,B> PMatrix3x3D<A,B> toParameterized(Matrix3x3D m)
A - A phantom type parameter (possibly representing a source coordinate system)B - A phantom type parameter (possibly representing a target coordinate system)m - The input matrixm with type parametersCopyright © 2017 <code@io7m.com> http://io7m.com