public final class Matrices3x3D extends Object
Functions over Matrix3x3D 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 Matrix3x3D |
add(Matrix3x3D m0,
Matrix3x3D m1)
Add the matrices
m0 and m1. |
static Vector3D |
column0(Matrix3x3D m) |
static Vector3D |
column1(Matrix3x3D m) |
static Vector3D |
column2(Matrix3x3D m) |
static double |
determinant(Matrix3x3D m)
Calculate the determinant of the matrix
m. |
static Matrix3x3D |
identity()
The identity matrix.
|
static Optional<Matrix3x3D> |
invert(Matrix3x3D m)
Calculate the inverse of the matrix
m. |
static Matrix3x3D |
multiply(Matrix3x3D m0,
Matrix3x3D m1)
Multiply the matrices
m0 and m1. |
static Vector3D |
multiplyVectorPost(Matrix3x3D m,
Vector3D v)
Multiply the vector
v by the matrix m. |
static Matrix3x3D |
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 Matrix3x3D |
ofColumns(Vector3D c0,
Vector3D c1,
Vector3D c2)
Construct a matrix from the column vectors
(c0, c1, c2). |
static Matrix3x3D |
ofRows(Vector3D r0,
Vector3D r1,
Vector3D r2)
Construct a matrix from the row vectors
(r0, r1, r2). |
static Matrix3x3D |
ofScale(double x,
double y,
double z)
Construct a matrix that will scale by
(x, y, z). |
static Vector3D |
row0(Matrix3x3D m) |
static Vector3D |
row1(Matrix3x3D m) |
static Vector3D |
row2(Matrix3x3D m) |
static Matrix3x3D |
scale(Matrix3x3D m,
double r)
Scale the matrix
m by r. |
static Matrix3x3D |
subtract(Matrix3x3D m0,
Matrix3x3D m1)
Subtract the matrices
m0 and m1. |
static double |
trace(Matrix3x3D m)
Return the trace of the matrix
m. |
static Matrix3x3D |
transpose(Matrix3x3D m)
Calculate the transpose of the matrix
m. |
static Matrix3x3D |
withColumn(Matrix3x3D m,
int column,
double r0,
double r1,
double r2)
Set the column
column of m to (r0, r1, r2). |
static Matrix3x3D |
withRow(Matrix3x3D m,
int row,
double c0,
double c1,
double c2)
Set the row
row of m to (c0, c1, c2). |
static Matrix3x3D |
zero()
The zero matrix.
|
public static Matrix3x3D add(Matrix3x3D m0, Matrix3x3D m1)
m0 and m1.m0 - The left matrixm1 - The right matrixm0 + m1public static double determinant(Matrix3x3D m)
m.m - The matrixmpublic static Optional<Matrix3x3D> invert(Matrix3x3D m)
m.m - The matrixm, or nothing if no inverse existspublic static Matrix3x3D multiply(Matrix3x3D m0, Matrix3x3D m1)
m0 and m1.m0 - The left matrixm1 - The right matrixm0 * m1public static Vector3D multiplyVectorPost(Matrix3x3D m, Vector3D v)
Multiply the vector v by the matrix m.
This is post multiplication.
m - The matrixv - The vectorm * vpublic static Matrix3x3D ofColumns(Vector3D c0, Vector3D c1, Vector3D c2)
(c0, c1, c2).c0 - The column 0c1 - The column 1c2 - The column 2public static Matrix3x3D ofRows(Vector3D r0, Vector3D r1, Vector3D r2)
(r0, r1, r2).r0 - The row 0r1 - The row 1r2 - The row 2public static Matrix3x3D ofScale(double x, double y, double z)
(x, y, z).x - The X scaling valuey - The Y scaling valuez - The Z scaling valuepublic static Matrix3x3D 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 Vector3D row0(Matrix3x3D m)
m - The matrixpublic static Vector3D row1(Matrix3x3D m)
m - The matrixpublic static Vector3D row2(Matrix3x3D m)
m - The matrixpublic static Vector3D column0(Matrix3x3D m)
m - The matrixpublic static Vector3D column1(Matrix3x3D m)
m - The matrixpublic static Vector3D column2(Matrix3x3D m)
m - The matrixpublic static Matrix3x3D scale(Matrix3x3D m, double r)
m by r.m - The matrixr - The scale factorm * rpublic static Matrix3x3D subtract(Matrix3x3D m0, Matrix3x3D m1)
m0 and m1.m0 - The left matrixm1 - The right matrixm0 - m1public static double trace(Matrix3x3D m)
m. The trace is defined as the sum
of the diagonal elements of the matrix.m - The matrixpublic static Matrix3x3D transpose(Matrix3x3D m)
m.m - The matrixmpublic static Matrix3x3D withColumn(Matrix3x3D m, int column, double r0, double r1, double r2)
column of m to (r0, r1, r2).m - The matrixcolumn - The column index in the range [0, 2]
* @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 columnpublic static Matrix3x3D withRow(Matrix3x3D m, int row, double c0, double c1, double c2)
row of m to (c0, c1, c2).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 Matrix3x3D zero()
public static Matrix3x3D identity()
Copyright © 2017 <code@io7m.com> http://io7m.com