Matrix3DBasics
, RotationMatrixReadOnly
, RotationScaleMatrixReadOnly
Matrix3D
, RotationMatrix
, RotationScaleMatrix
public interface Matrix3DReadOnly
Modifier and Type | Method | Description |
---|---|---|
default void |
addTransform(Tuple3DBasics tupleToTransform) |
Transforms the given tuple by this matrix and add the result to the tuple.
|
default void |
addTransform(Tuple3DReadOnly tupleOriginal,
Tuple3DBasics tupleTransformed) |
Transforms the given tuple
tupleOriginal by this matrix and add the result to
tupleTransformed . |
default void |
checkIfMatrix2D() |
Asserts that this matrix describes transformation in the XY plane.
|
default void |
checkIfRotationMatrix() |
Asserts that this matrix is a rotation matrix.
|
default boolean |
containsNaN() |
Tests if at least one element of this matrix is equal to Double.NaN.
|
default double |
determinant() |
Computes the determinant of this matrix.
|
default boolean |
epsilonEquals(Matrix3DReadOnly other,
double epsilon) |
Tests on a per coefficient basis if this matrix is equal to the given
other to an
epsilon . |
default boolean |
equals(Matrix3DReadOnly other) |
Tests on a per component basis if this matrix is exactly equal to
other . |
default void |
get(double[] matrixArrayToPack) |
Packs the coefficients of this matrix into a row-major 1D array.
|
default void |
get(int startIndex,
double[] matrixArrayToPack) |
Packs the coefficients of this matrix into a row-major 1D array starting at the given index
startIndex . |
default void |
get(int startRow,
int startColumn,
org.ejml.data.DenseMatrix64F matrixToPack) |
Packs the coefficients of this matrix into a dense-matrix given index offsets for the row and the
column.
|
default void |
get(org.ejml.data.DenseMatrix64F matrixToPack) |
Packs the coefficients of this matrix into a dense-matrix.
|
default void |
getColumn(int column,
double[] columnArrayToPack) |
Packs a column of this matrix into an array.
|
default void |
getColumn(int column,
Tuple3DBasics columnToPack) |
Packs a column of this matrix into a 3D tuple.
|
default double |
getElement(int row,
int column) |
Retrieves and returns a coefficient of this matrix given its row and column indices.
|
double |
getM00() |
Gets the 1st row 1st column coefficient of this matrix.
|
double |
getM01() |
Gets the 1st row 2nd column coefficient of this matrix.
|
double |
getM02() |
Gets the 1st row 3rd column coefficient of this matrix.
|
double |
getM10() |
Gets the 2nd row 1st column coefficient of this matrix.
|
double |
getM11() |
Gets the 2nd row 2nd column coefficient of this matrix.
|
double |
getM12() |
Gets the 2nd row 3rd column coefficient of this matrix.
|
double |
getM20() |
Gets the 3rd row 1st column coefficient of this matrix.
|
double |
getM21() |
Gets the 3rd row 2nd column coefficient of this matrix.
|
double |
getM22() |
Gets the 3rd row 3rd column coefficient of this matrix.
|
default void |
getRow(int row,
double[] rowArrayToPack) |
Packs a row of this matrix into an array.
|
default void |
getRow(int row,
Tuple3DBasics rowToPack) |
Packs a row of this matrix into a 3D tuple.
|
void |
inverseTransform(Matrix3DReadOnly matrixOriginal,
Matrix3D matrixTransformed) |
Performs the inverse of the transforms to the given 3D matrix
matrixOriginal by this
matrix and stores the result in matrixTransformed . |
default void |
inverseTransform(Matrix3D matrixToTransform) |
Performs the inverse of the transforms to the given 3D matrix
matrixOriginal by this
matrix. |
default void |
inverseTransform(Tuple2DBasics tupleToTransform) |
Performs the inverse of the transform to the given tuple by this matrix.
|
default void |
inverseTransform(Tuple2DBasics tupleToTransform,
boolean checkIfTransformInXYPlane) |
Performs the inverse of the transform to the given tuple by this matrix.
|
default void |
inverseTransform(Tuple2DReadOnly tupleOriginal,
Tuple2DBasics tupleTransformed) |
Performs the inverse of the transform to the given tuple
tupleOriginal by this matrix and
stores the result in tupleTransformed . |
void |
inverseTransform(Tuple2DReadOnly tupleOriginal,
Tuple2DBasics tupleTransformed,
boolean checkIfTransformInXYPlane) |
Performs the inverse of the transform to the given tuple
tupleOriginal by this matrix and
stores the result in tupleTransformed . |
default void |
inverseTransform(Tuple3DBasics tupleToTransform) |
Performs the inverse of the transform to the given tuple by this matrix.
|
void |
inverseTransform(Tuple3DReadOnly tupleOriginal,
Tuple3DBasics tupleTransformed) |
Performs the inverse of the transform to the given tuple
tupleOriginal by this matrix and
stores the result in tupleTransformed . |
default void |
inverseTransform(Vector4DBasics vectorToTransform) |
Performs the inverse of the transform to the vector part the given 4D vector by this matrix.
|
void |
inverseTransform(Vector4DReadOnly vectorOriginal,
Vector4DBasics vectorTransformed) |
Performs the inverse of the transform to the vector part the given 4D vector
vectorOriginal by this matrix and stores the result in vectorTransformed . |
default boolean |
isIdentity() |
Tests if this matrix is equal to the identity matrix.
|
default boolean |
isIdentity(double epsilon) |
Tests if this matrix is equal to the identity matrix.
|
default boolean |
isMatrix2D() |
Tests if this matrix describes transformation in the XY plane.
|
default boolean |
isMatrix2D(double epsilon) |
Tests if this matrix describes transformation in the XY plane.
|
default boolean |
isMatrixSkewSymmetric() |
Tests if this matrix is skew symmetric:
|
default boolean |
isMatrixSkewSymmetric(double epsilon) |
Tests if this matrix is skew symmetric:
|
default boolean |
isRotationMatrix() |
Tests if this matrix is a rotation matrix.
|
default boolean |
isRotationMatrix(double epsilon) |
Tests if this matrix is a rotation matrix given a tolerance
epsilon . |
void |
transform(Matrix3DReadOnly matrixOriginal,
Matrix3D matrixTransformed) |
Transforms the given 3D matrix
matrixOriginal by this matrix and stores the result in
matrixTransformed . |
default void |
transform(Matrix3D matrixToTransform) |
Transforms the given 3D matrix by this matrix.
|
default void |
transform(Tuple2DBasics tupleToTransform) |
Transforms the given tuple by this matrix.
|
default void |
transform(Tuple2DBasics tupleToTransform,
boolean checkIfTransformInXYPlane) |
Transforms the given tuple by this matrix.
|
default void |
transform(Tuple2DReadOnly tupleOriginal,
Tuple2DBasics tupleTransformed) |
Transforms the given tuple
tupleOriginal by this matrix and stores the result in
tupleTransformed . |
default void |
transform(Tuple2DReadOnly tupleOriginal,
Tuple2DBasics tupleTransformed,
boolean checkIfRotationInXYPlane) |
Transforms the given tuple
tupleOriginal by this matrix and stores the result in
tupleTransformed . |
default void |
transform(Tuple3DBasics tupleToTransform) |
Transforms the given tuple by this matrix.
|
default void |
transform(Tuple3DReadOnly tupleOriginal,
Tuple3DBasics tupleTransformed) |
Transforms the given tuple
tupleOriginal by this matrix and stores the result in
tupleTransformed . |
default void |
transform(Vector4DBasics vectorToTransform) |
Transforms the vector part of the given 4D vector.
|
default void |
transform(Vector4DReadOnly vectorOriginal,
Vector4DBasics vectorTransformed) |
Transforms the vector part of the given 4D vector
vectorOriginal and stores the result
into vectorTransformed . |
double getM00()
double getM01()
double getM02()
double getM10()
double getM11()
double getM12()
double getM20()
double getM21()
double getM22()
default double getElement(int row, int column)
row
- the row of the coefficient to return.column
- the column of the coefficient to return.java.lang.ArrayIndexOutOfBoundsException
- if either row
∉ [0, 2] or column
∉ [0, 2].default void get(double[] matrixArrayToPack)
matrixArrayToPack
- the array in which the coefficients of this matrix are stored. Modified.default void get(int startIndex, double[] matrixArrayToPack)
startIndex
.startIndex
- index in the array to store the first coefficient of this matrix.matrixArrayToPack
- the array in which the coefficients of this matrix are stored. Modified.default void get(org.ejml.data.DenseMatrix64F matrixToPack)
matrixToPack
- the dense-matrix in which the coefficients of this matrix are stored.
Modified.default void get(int startRow, int startColumn, org.ejml.data.DenseMatrix64F matrixToPack)
startRow
- the first row index to start writing in the dense-matrix.startColumn
- the first column index to start writing in the dense-matrix.matrixToPack
- the dense-matrix in which the coefficients of this matrix are stored.
Modified.default void getColumn(int column, double[] columnArrayToPack)
column
- the index of the column to pack.columnArrayToPack
- the array in which the column of this matrix is stored. Modified.java.lang.ArrayIndexOutOfBoundsException
- if column
∉ [0, 2].default void getColumn(int column, Tuple3DBasics columnToPack)
column
- the index of the column to pack.columnToPack
- the tuple in which the column of this matrix is stored. Modified.java.lang.ArrayIndexOutOfBoundsException
- if column
∉ [0, 2].default void getRow(int row, double[] rowArrayToPack)
row
- the index of the row to pack.rowArrayToPack
- the array in which the row of this matrix is stored. Modified.java.lang.ArrayIndexOutOfBoundsException
- if row
∉ [0, 2].default void getRow(int row, Tuple3DBasics rowToPack)
row
- the index of the row to pack.rowToPack
- the array in which the row of this matrix is stored. Modified.java.lang.ArrayIndexOutOfBoundsException
- if row
∉ [0, 2].default boolean containsNaN()
true
if at least one element of this matrix is equal to Double.NaN,
false
otherwise.default double determinant()
default void checkIfRotationMatrix()
This matrix is a rotation matrix if:
Matrix3DFeatures.EPS_CHECK_ROTATION
,
Matrix3DFeatures.EPS_CHECK_ROTATION
,
Matrix3DFeatures.EPS_CHECK_ROTATION
.
NotARotationMatrixException
- if the matrix is not a rotation matrix.default void checkIfMatrix2D()
This matrix is considered to be a 2D transformation in the XY plane if:
Matrix3DFeatures.EPS_CHECK_2D
,
m20
, m02
, m21
, and m12
are equal to 0.0 +/-
Matrix3DFeatures.EPS_CHECK_2D
.
NotAMatrix2DException
- if the matrix represents a 3D transformation.default boolean isIdentity()
The assertion is done on a per coefficient basis using
Matrix3DFeatures.EPS_CHECK_IDENTITY
as the tolerance.
epsilon
- the tolerance as shown above.true
if the given matrix is considered to be equal to the identity matrix,
false
otherwise.default boolean isIdentity(double epsilon)
The assertion is done on a per coefficient basis using epsilon
as the tolerance.
epsilon
- the tolerance as shown above.true
if the given matrix is considered to be equal to the identity matrix,
false
otherwise.default boolean isRotationMatrix()
This matrix is a rotation matrix if:
Matrix3DFeatures.EPS_CHECK_ROTATION
,
Matrix3DFeatures.EPS_CHECK_ROTATION
,
Matrix3DFeatures.EPS_CHECK_ROTATION
.
true
if this matrix is a rotation matrix, false
otherwise.default boolean isRotationMatrix(double epsilon)
epsilon
.
This matrix is a rotation matrix if:
epsilon
,
epsilon
,
epsilon
.
epsilon
- the tolerance to use.true
if this matrix is a rotation matrix, false
otherwise.default boolean isMatrix2D()
This matrix is considered to be a 2D transformation in the XY plane if:
Matrix3DFeatures.EPS_CHECK_2D
,
m20
, m02
, m21
, and m12
are equal to 0.0 +/-
Matrix3DFeatures.EPS_CHECK_2D
.
true
if this matrix describes a 2D transformation in the XY plane, false
otherwise.default boolean isMatrix2D(double epsilon)
This matrix is considered to be a 2D transformation in the XY plane if:
epsilon
,
m20
, m02
, m21
, and m12
are equal to 0.0 +/-
epsilon
.
epsilon
- the tolerance to use.true
if this matrix describes a 2D transformation in the XY plane, false
otherwise.default boolean isMatrixSkewSymmetric()
| 0 -z y | m = | z 0 -x | | -y x 0 |
This matrix is considered to be skew symmetric if:
Matrix3DFeatures.EPS_CHECK_SKEW
,
m10
, m01
),
(m12
, m21
), and (m20
, m02
) are equal to 0.0 +/-
Matrix3DFeatures.EPS_CHECK_SKEW
.
true
if the matrix is skew symmetric, false
otherwise.default boolean isMatrixSkewSymmetric(double epsilon)
| 0 -z y | m = | z 0 -x | | -y x 0 |
This matrix is considered to be skew symmetric if:
epsilon
,
m10
, m01
),
(m12
, m21
), and (m20
, m02
) are equal to 0.0 +/- epsilon
.
epsilon
- the tolerance to use.true
if the matrix is skew symmetric, false
otherwise.default void transform(Tuple3DBasics tupleToTransform)
tupleToTransform = this * tupleToTransform
tupleToTransform
- the tuple to transform. Modified.default void transform(Tuple3DReadOnly tupleOriginal, Tuple3DBasics tupleTransformed)
tupleOriginal
by this matrix and stores the result in
tupleTransformed
.
tupleTransformed = this * tupleOriginal
tupleOriginal
- the tuple to transform. Not modified.tupleTransformed
- the tuple to store the result. Modified.default void addTransform(Tuple3DBasics tupleToTransform)
tupleToTransform = tupleToTransform + this * tupleToTransform
tupleToTransform
- the tuple to transform. Modified.default void addTransform(Tuple3DReadOnly tupleOriginal, Tuple3DBasics tupleTransformed)
tupleOriginal
by this matrix and add the result to
tupleTransformed
.
tupleTransformed = tupleTransformed + this * tupleOriginal
tupleOriginal
- the tuple to transform. Not modified.tupleTransformed
- the tuple to add the result to. Modified.default void transform(Tuple2DBasics tupleToTransform)
tupleToTransform = this * tupleToTransform
tupleToTransform
- the tuple to transform. Modified.NotAMatrix2DException
- if this matrix does not represent a transformation in the XY plane.default void transform(Tuple2DReadOnly tupleOriginal, Tuple2DBasics tupleTransformed)
tupleOriginal
by this matrix and stores the result in
tupleTransformed
.
tupleTransformed = this * tupleOriginal
tupleOriginal
- the tuple to transform. Not modified.tupleTransformed
- the tuple to store the result. Modified.NotAMatrix2DException
- if this matrix does not represent a transformation in the XY plane.default void transform(Tuple2DBasics tupleToTransform, boolean checkIfTransformInXYPlane)
tupleToTransform = this * tupleToTransform
tupleToTransform
- the tuple to transform. Modified.checkIfTransformInXYPlane
- whether this method should assert that this matrix represents a
transformation in the XY plane.NotAMatrix2DException
- if checkIfTransformInXYPlane == true
and this matrix does
not represent a transformation in the XY plane.default void transform(Tuple2DReadOnly tupleOriginal, Tuple2DBasics tupleTransformed, boolean checkIfRotationInXYPlane)
tupleOriginal
by this matrix and stores the result in
tupleTransformed
.
tupleTransformed = this * tupleOriginal
tupleOriginal
- the tuple to transform. Not modified.tupleTransformed
- the tuple to store the result. Modified.checkIfRotationInXYPlane
- whether this method should assert that this matrix represents a
transformation in the XY plane.NotAMatrix2DException
- if checkIfTransformInXYPlane == true
and this matrix does
not represent a transformation in the XY plane.default void transform(Matrix3D matrixToTransform)
matrixToTransform = this * matrixToTransform * this-1
matrixToTransform
- the matrix to transform. Modified.SingularMatrixException
- if this matrix is not invertible.void transform(Matrix3DReadOnly matrixOriginal, Matrix3D matrixTransformed)
matrixOriginal
by this matrix and stores the result in
matrixTransformed
.
matrixTransformed = this * matrixOriginal * this-1
matrixOriginal
- the matrix to transform. Not modified.matrixTransformed
- the matrix in which the result is stored. Modified.SingularMatrixException
- if this matrix is not invertible.default void transform(Vector4DBasics vectorToTransform)
vectorToTransform.s = vectorToTransform.s
vectorToTransform.xyz = this * vectorToTransform.xyz
vectorToTransform
- the vector to transform. Modified.default void transform(Vector4DReadOnly vectorOriginal, Vector4DBasics vectorTransformed)
vectorOriginal
and stores the result
into vectorTransformed
.
vectorTransformed.s = vectorOriginal.s
vectorTransformed.xyz = this * vectorOriginal.xyz
vectorOriginal
- the vector to transform. Not modified.vectorTransformed
- the vector in which the result is stored. Modified.default void inverseTransform(Tuple3DBasics tupleToTransform)
tupleToTransform = this-1 * tupleToTransform
tupleToTransform
- the tuple to transform. Modified.SingularMatrixException
- if this matrix is not invertible.void inverseTransform(Tuple3DReadOnly tupleOriginal, Tuple3DBasics tupleTransformed)
tupleOriginal
by this matrix and
stores the result in tupleTransformed
.
tupleTransformed = this-1 * tupleOriginal
tupleOriginal
- the tuple to transform. Not modified.tupleTransformed
- the tuple in which the result is stored. Modified.SingularMatrixException
- if this matrix is not invertible.default void inverseTransform(Tuple2DBasics tupleToTransform)
tupleToTransform = this-1 * tupleToTransform
tupleToTransform
- the tuple to transform. Modified.NotAMatrix2DException
- if this matrix does not represent a transformation in the XY plane.SingularMatrixException
- if this matrix is not invertible.default void inverseTransform(Tuple2DReadOnly tupleOriginal, Tuple2DBasics tupleTransformed)
tupleOriginal
by this matrix and
stores the result in tupleTransformed
.
tupleTransformed = this-1 * tupleOriginal
tupleOriginal
- the tuple to transform. Not modified.tupleTransformed
- the tuple in which the result is stored. Modified.NotAMatrix2DException
- if this matrix does not represent a transformation in the XY plane.SingularMatrixException
- if this matrix is not invertible.default void inverseTransform(Tuple2DBasics tupleToTransform, boolean checkIfTransformInXYPlane)
tupleToTransform = this-1 * tupleToTransform
tupleToTransform
- the tuple to transform. Modified.checkIfTransformInXYPlane
- whether this method should assert that this matrix represents a
transformation in the XY plane.NotAMatrix2DException
- if checkIfTransformInXYPlane == true
and this matrix does
not represent a transformation in the XY plane.SingularMatrixException
- if this matrix is not invertible.void inverseTransform(Tuple2DReadOnly tupleOriginal, Tuple2DBasics tupleTransformed, boolean checkIfTransformInXYPlane)
tupleOriginal
by this matrix and
stores the result in tupleTransformed
.
tupleTransformed = this-1 * tupleOriginal
tupleOriginal
- the tuple to transform. Not modified.tupleTransformed
- the tuple in which the result is stored. Modified.checkIfTransformInXYPlane
- whether this method should assert that this matrix represents a
transformation in the XY plane.NotAMatrix2DException
- if checkIfTransformInXYPlane == true
and this matrix does
not represent a transformation in the XY plane.SingularMatrixException
- if this matrix is not invertible.default void inverseTransform(Matrix3D matrixToTransform)
matrixOriginal
by this
matrix.
matrixToTransform = this-1 * matrixToTransform * this-1
matrixToTransform
- the matrix to transform. Not modified.SingularMatrixException
- if this matrix is not invertible.void inverseTransform(Matrix3DReadOnly matrixOriginal, Matrix3D matrixTransformed)
matrixOriginal
by this
matrix and stores the result in matrixTransformed
.
matrixTransformed = this-1 * matrixOriginal * this-1
matrixOriginal
- the matrix to transform. Not modified.matrixTransformed
- the matrix in which the result is stored. Modified.SingularMatrixException
- if this matrix is not invertible.default void inverseTransform(Vector4DBasics vectorToTransform)
vectorToTransform.s = vectorToTransform.s
vectorToTransform.xyz = this-1 * vectorToTransform.xyz
vectorToTransform
- the vector to transform. Modified.SingularMatrixException
- if this matrix is not invertible.void inverseTransform(Vector4DReadOnly vectorOriginal, Vector4DBasics vectorTransformed)
vectorOriginal
by this matrix and stores the result in vectorTransformed
.
vectorTransformed.s = vectorOriginal.s
vectorTransformed.xyz = this-1 * vectorOriginal.xyz
vectorOriginal
- the vector to transform. Not modified.vectorTransformed
- the vector in which the result is stored. Modified.SingularMatrixException
- if this matrix is not invertible.default boolean equals(Matrix3DReadOnly other)
other
.
The method returns false
if the given matrix is null
.
other
- the other matrix to compare against this. Not modified.true
if the two matrices are exactly equal component-wise, false
otherwise.default boolean epsilonEquals(Matrix3DReadOnly other, double epsilon)
other
to an
epsilon
.other
- the other matrix to compare against this. Not modified.epsilon
- the tolerance to use when comparing each component.true
if the two matrices are equal, false
otherwise.