public class Matrix3f extends Object implements Serializable
Modifier and Type | Field and Description |
---|---|
static Matrix3f |
IDENTITY
Identity matrix:
|
float |
M00
Matrix data:
|
float |
M01
Matrix data:
|
float |
M02
Matrix data:
|
float |
M10 |
float |
M11 |
float |
M12 |
float |
M20 |
float |
M21 |
float |
M22 |
private static long |
serialVersionUID |
static Matrix3f |
ZERO
Zero matrix:
|
Constructor and Description |
---|
Matrix3f()
Constructor, defaults to zero-matrix:
|
Matrix3f(boolean bZero)
If bZero is true, create the zero matrix.
|
Matrix3f(float[] afEntry,
boolean bRowMajor)
Create a matrix from an array of numbers.
|
Matrix3f(float fM00,
float fM11,
float fM22)
create a diagonal matrix
|
Matrix3f(float fM00,
float fM01,
float fM02,
float fM10,
float fM11,
float fM12,
float fM20,
float fM21,
float fM22)
input Mrc is in row r, column c.
|
Matrix3f(Matrix3f rkM)
copy constructor
|
Matrix3f(Vector3f[] akV,
boolean bColumns)
Create matrices based on vector input.
|
Matrix3f(Vector3f rkAxis,
float fAngle)
Create rotation matrices (positive angle - counterclockwise).
|
Matrix3f(Vector3f rkU,
Vector3f rkV)
create a tensor product U*V^T
|
Matrix3f(Vector3f rkU,
Vector3f rkV,
Vector3f rkW,
boolean bColumns)
Create matrices based on vector input.
|
Modifier and Type | Method and Description |
---|---|
Matrix3f |
add(float fM00,
float fM01,
float fM02,
float fM10,
float fM11,
float fM12,
float fM20,
float fM21,
float fM22) |
void |
Add(float fM00,
float fM01,
float fM02,
float fM10,
float fM11,
float fM12,
float fM20,
float fM21,
float fM22)
Deprecated.
|
Matrix3f |
add(Matrix3f kMat)
this = this + kMat
|
void |
Add(Matrix3f kMat)
Deprecated.
|
static Matrix3f |
add(Matrix3f kMat1,
Matrix3f kMat2) |
void |
Add(Matrix3f kMat1,
Matrix3f kMat2)
Deprecated.
|
Matrix3f |
adjoint() |
void |
Adjoint()
Deprecated.
|
Matrix3f |
copy(Matrix3f rkM)
Copy this = rkM
|
void |
Copy(Matrix3f rkM)
Deprecated.
|
float |
determinant() |
float |
Determinant()
Deprecated.
|
Matrix3f |
diagonalTimes(Vector3f kDiag) |
void |
DiagonalTimes(Vector3f kDiag)
Deprecated.
|
static boolean |
eigenDecomposition(Matrix3f rkRot,
Matrix3f rkDiag)
Factor M = R*D*R^T.
|
static boolean |
EigenDecomposition(Matrix3f rkRot,
Matrix3f rkDiag)
Deprecated.
|
boolean |
equals(Object kObject) |
Matrix3f |
fromAxisAngle(Vector3f rkAxis,
float fAngle) |
void |
FromAxisAngle(Vector3f rkAxis,
float fAngle)
Deprecated.
|
float |
get(int iIndex) |
float |
Get(int iIndex)
Deprecated.
|
float |
get(int iRow,
int iCol) |
float |
Get(int iRow,
int iCol)
Deprecated.
|
Vector3f |
getColumn(int iCol) |
void |
getColumn(int iCol,
Vector3f kResult) |
void |
GetColumn(int iCol,
Vector3f kResult)
Deprecated.
|
void |
getColumnMajor(float[] afCMajor) |
void |
GetColumnMajor(float[] afCMajor)
Deprecated.
|
void |
getData(float[] afData) |
void |
GetData(float[] afData)
Deprecated.
|
Matrix3f |
identity() |
Matrix3f |
inverse()
Invert a 3x3 using cofactors.
|
void |
Inverse()
Deprecated.
|
static Matrix3f |
inverse(Matrix3f kM) |
void |
Inverse(Matrix3f kM)
Deprecated.
|
static void |
main(String[] args) |
Matrix3f |
makeDiagonal(float fM00,
float fM11,
float fM22) |
void |
MakeDiagonal(float fM00,
float fM11,
float fM22)
Deprecated.
|
void |
MakeIdentity()
Deprecated.
|
Matrix3f |
makeTensorProduct(Vector3f rkU,
Vector3f rkV) |
void |
MakeTensorProduct(Vector3f rkU,
Vector3f rkV)
Deprecated.
|
void |
MakeZero()
Deprecated.
|
Matrix3f |
mult(Matrix3f kM) |
void |
Mult(Matrix3f kM)
Deprecated.
|
static Matrix3f |
mult(Matrix3f kM1,
Matrix3f kM2) |
void |
Mult(Matrix3f kM1,
Matrix3f kM2)
Deprecated.
|
Vector3f |
mult(Vector3f kV) |
void |
mult(Vector3f kV,
Vector3f kResult)
kResult = this * kV
|
void |
Mult(Vector3f kV,
Vector3f kResult)
Deprecated.
|
Matrix3f |
multLeft(Matrix3f kM)
this = kM * this
|
void |
MultLeft(Matrix3f kM)
Deprecated.
|
Vector3f |
multLeft(Vector3f kV) |
void |
multLeft(Vector3f kV,
Vector3f kResult) |
void |
MultLeft(Vector3f kV,
Vector3f kResult)
Deprecated.
|
Vector3f |
multRight(Vector3f kV) |
void |
multRight(Vector3f kV,
Vector3f kResult) |
void |
MultRight(Vector3f kV,
Vector3f kResult)
Deprecated.
|
Matrix3f |
orthonormalize()
The matrix must be a rotation for these functions to be valid.
|
void |
Orthonormalize()
Deprecated.
|
float |
qForm(Vector3f rkU,
Vector3f rkV) |
float |
QForm(Vector3f rkU,
Vector3f rkV)
Deprecated.
|
private static boolean |
qlAlgorithm(Matrix3f rkRot,
float[] afDiag,
float[] afSubd)
This is an implementation of the symmetric QR algorithm from the book
"Matrix Computations" by Gene H.
|
Matrix3f |
scale(float fScalar)
this = this * fScalar
|
void |
Scale(float fScalar)
Deprecated.
|
Matrix3f |
set(float[] afEntry,
boolean bRowMajor) |
void |
Set(float[] afEntry,
boolean bRowMajor)
Deprecated.
|
Matrix3f |
set(float fM00,
float fM01,
float fM02,
float fM10,
float fM11,
float fM12,
float fM20,
float fM21,
float fM22) |
void |
Set(float fM00,
float fM01,
float fM02,
float fM10,
float fM11,
float fM12,
float fM20,
float fM21,
float fM22)
Deprecated.
|
Matrix3f |
set(int iIndex,
float fValue) |
void |
Set(int iIndex,
float fValue)
Deprecated.
|
Matrix3f |
set(int iRow,
int iCol,
float fValue) |
void |
Set(int iRow,
int iCol,
float fValue)
Deprecated.
|
Matrix3f |
setColumn(int iCol,
Vector3f kV) |
void |
SetColumn(int iCol,
Vector3f kV)
Deprecated.
|
static boolean |
test() |
static boolean |
test(int count) |
Matrix3f |
timesDiagonal(Vector3f kDiag)
Compute this matrix times the diagonal vector: this = M*D
|
void |
TimesDiagonal(Vector3f kDiag)
Deprecated.
|
Matrix3f |
timesTranspose(Matrix3f kM) |
void |
TimesTranspose(Matrix3f kM)
Deprecated.
|
float |
toAxisAngle(Vector3f rkAxis) |
float |
ToAxisAngle(Vector3f rkAxis)
Deprecated.
|
String |
toString()
Returns a string representation of the matrix values.
|
Matrix3f |
transpose()
Transpose this matrix: this = this^T
|
void |
Transpose()
Deprecated.
|
Matrix3f |
transposeTimes(Matrix3f kM) |
void |
TransposeTimes(Matrix3f kM)
Deprecated.
|
private static boolean |
tridiagonalize(Matrix3f rkRot,
float[] afDiag,
float[] afSubd)
Householder reduction T = Q^t M Q Input: mat, symmetric 3x3 matrix M
Output:
|
Matrix3f |
zero() |
private static final long serialVersionUID
public static final Matrix3f ZERO
public static final Matrix3f IDENTITY
public float M00
public float M01
public float M02
public float M10
public float M11
public float M12
public float M20
public float M21
public float M22
public Matrix3f()
public Matrix3f(boolean bZero)
bZero
- when true create zero matrix, when false create identity.public Matrix3f(float fM00, float fM11, float fM22)
fM00
- 0-diagonal valuefM11
- 1-diagonal valuefM22
- 2-diagonal valuepublic Matrix3f(float fM00, float fM01, float fM02, float fM10, float fM11, float fM12, float fM20, float fM21, float fM22)
fM00
- matrix[0] entryfM01
- matrix[1] entryfM02
- matrix[2] entryfM10
- matrix[3] entryfM11
- matrix[4] entryfM12
- matrix[5] entryfM20
- matrix[6] entryfM21
- matrix[7] entryfM22
- matrix[8] entrypublic Matrix3f(float[] afEntry, boolean bRowMajor)
afEntry
- array of values to put in matrixbRowMajor
- when true copy in row major order.public Matrix3f(Matrix3f rkM)
rkM
- matrix to copy.public Matrix3f(Vector3f rkAxis, float fAngle)
rkAxis
- rotation axisfAngle
- rotation angle in radianspublic Matrix3f(Vector3f rkU, Vector3f rkV)
rkU
- U-VectorrkV
- V-Vectorpublic Matrix3f(Vector3f rkU, Vector3f rkV, Vector3f rkW, boolean bColumns)
rkU
- input vector1rkV
- input vector2rkW
- input vector3bColumns
- when true vectors are columns of matrix.public Matrix3f(Vector3f[] akV, boolean bColumns)
akV
- input vector[3]bColumns
- when true vectors are columns of matrix.public static boolean EigenDecomposition(Matrix3f rkRot, Matrix3f rkDiag)
rkRot
- rkDiag
- public static boolean eigenDecomposition(Matrix3f rkRot, Matrix3f rkDiag)
rkRot
- rkDiag
- private static boolean qlAlgorithm(Matrix3f rkRot, float[] afDiag, float[] afSubd)
rkRot
- afDiag
- afSubd
- private static boolean tridiagonalize(Matrix3f rkRot, float[] afDiag, float[] afSubd)
rkRot
- mat, orthogonal matrix Q (a reflection)afDiag
- diag, diagonal entries of TafSubd
- subd, subdiagonal entries of T (T is symmetric)public final void Add(float fM00, float fM01, float fM02, float fM10, float fM11, float fM12, float fM20, float fM21, float fM22)
fM00
- fM01
- fM02
- fM10
- fM11
- fM12
- fM20
- fM21
- fM22
- public final Matrix3f add(float fM00, float fM01, float fM02, float fM10, float fM11, float fM12, float fM20, float fM21, float fM22)
public final void Add(Matrix3f kMat)
kMat
- public final void Add(Matrix3f kMat1, Matrix3f kMat2)
kMat1
- kMat2
- public void Adjoint()
public Matrix3f adjoint()
public void Copy(Matrix3f rkM)
rkM
- matrix to copy.public float Determinant()
public float determinant()
public void DiagonalTimes(Vector3f kDiag)
kDiag
- diagonal vectorpublic void FromAxisAngle(Vector3f rkAxis, float fAngle)
rkAxis
- rotation axisfAngle
- rotation angle in radianspublic final float Get(int iIndex)
iIndex
- matrix indexpublic final float get(int iIndex)
public final float Get(int iRow, int iCol)
iRow
- row-valueiCol
- column-valuepublic final float get(int iRow, int iCol)
public void GetColumn(int iCol, Vector3f kResult)
iCol
- column to getkResult
- column vector valuespublic void getColumn(int iCol, Vector3f kResult)
public Vector3f getColumn(int iCol)
public void GetColumnMajor(float[] afCMajor)
afCMajor
- copy matrix into array.public void getColumnMajor(float[] afCMajor)
public void GetData(float[] afData)
afData
- copy matrix into array.public void getData(float[] afData)
public void Inverse()
public Matrix3f inverse()
public void Inverse(Matrix3f kM)
kM
- the matrix to invert. this = kM-1public void MakeDiagonal(float fM00, float fM11, float fM22)
fM00
- matrix[0] entryfM11
- matrix[4] entryfM22
- matrix[8] entrypublic Matrix3f makeDiagonal(float fM00, float fM11, float fM22)
public void MakeIdentity()
public Matrix3f identity()
public void MakeTensorProduct(Vector3f rkU, Vector3f rkV)
rkU
- U-VectorrkV
- V-Vectorpublic void MakeZero()
public Matrix3f zero()
public void Mult(Matrix3f kM)
kM
- input matrixpublic void Mult(Matrix3f kM1, Matrix3f kM2)
kM1
- first input matrixkM2
- second input matrixpublic void Mult(Vector3f kV, Vector3f kResult)
kV
- vectorkResult
- = this * vpublic void MultLeft(Matrix3f kM)
kM
- input matrixpublic void MultLeft(Vector3f kV, Vector3f kResult)
kV
- vectorkResult
- = v^T * thispublic void MultRight(Vector3f kV, Vector3f kResult)
kV
- vectorkResult
- = this * vMult(Vector3f kV, Vector3f kResult)
public void Orthonormalize()
public Matrix3f orthonormalize()
public float QForm(Vector3f rkU, Vector3f rkV)
rkU
- urkV
- vpublic void Scale(float fScalar)
fScalar
- scalar valuepublic Matrix3f scale(float fScalar)
fScalar
- public final void Set(float fM00, float fM01, float fM02, float fM10, float fM11, float fM12, float fM20, float fM21, float fM22)
fM00
- matrix[0] entryfM01
- matrix[1] entryfM02
- matrix[2] entryfM10
- matrix[3] entryfM11
- matrix[4] entryfM12
- matrix[5] entryfM20
- matrix[6] entryfM21
- matrix[7] entryfM22
- matrix[8] entrypublic Matrix3f set(float fM00, float fM01, float fM02, float fM10, float fM11, float fM12, float fM20, float fM21, float fM22)
public void Set(float[] afEntry, boolean bRowMajor)
afEntry
- array of values to put in matrixbRowMajor
- when true copy in row major order.public Matrix3f set(float[] afEntry, boolean bRowMajor)
public void Set(int iIndex, float fValue)
iIndex
- matrix indexpublic Matrix3f set(int iIndex, float fValue)
public final void Set(int iRow, int iCol, float fValue)
iRow
- row-valueiCol
- column-valuefValue
- matrix[iIndex] new valuepublic final Matrix3f set(int iRow, int iCol, float fValue)
public void SetColumn(int iCol, Vector3f kV)
iCol
- column to setkV
- new column vector valuespublic void TimesDiagonal(Vector3f kDiag)
kDiag
- diagonal vectorpublic Matrix3f timesDiagonal(Vector3f kDiag)
kDiag
- diagonal vectorpublic void TimesTranspose(Matrix3f kM)
kM
- matrixpublic float ToAxisAngle(Vector3f rkAxis)
rkAxis
- rotation axispublic float toAxisAngle(Vector3f rkAxis)
public String toString()
public void Transpose()
public Matrix3f transpose()
public void TransposeTimes(Matrix3f kM)
kM
- input matrixpublic static void main(String[] args)
public static boolean test()
public static boolean test(int count)