Class Matrix2
- Object
-
- Matrix2
-
- All Implemented Interfaces:
Serializable
,Cloneable
,Matrix
,Cloneable
,XMatrix
public class Matrix2 extends Object implements XMatrix, Serializable
- Since:
- 2.2
- Author:
- Martin Desruisseaux (IRD)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description double
m00
The first matrix element in the first row.double
m01
The second matrix element in the first row.double
m10
The first matrix element in the second row.double
m11
The second matrix element in the second row.static int
SIZE
The matrix size, which is 2.
-
Constructor Summary
Constructors Constructor Description Matrix2()
Creates a new identity matrix.Matrix2(double m00, double m01, double m10, double m11)
Creates a new matrix initialized to the specified values.Matrix2(Matrix matrix)
Creates a new matrix initialized to the same value than the specified one.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(double scalar)
Performs an in-place scalar addition.void
add(double scalar, XMatrix matrix)
Set to the scalar addition ofscalar+matrix
void
add(XMatrix matrix)
Set to the matrix addition ofthis+matrix
.void
add(XMatrix matrix1, XMatrix matrix2)
Set to the matrix addition ofmatrix1+matrix2
.Matrix2
clone()
Returns a clone of this matrix.double
determinate()
Computes the determinantboolean
equals(Object object)
Returnstrue
if the specified object is of typeMatrix2
and all of the data members are equal to the corresponding data members in this matrix.boolean
equals(Matrix matrix, double tolerance)
Compares the element values.void
getColumn(int column, double[] array)
Extract col to provided array.double
getElement(int row, int col)
Returns the element at the specified index.int
getNumCol()
Returns the number of colmuns in this matrix, which is always 2 in this implementation.int
getNumRow()
Returns the number of rows in this matrix, which is always 2 in this implementation.void
getRow(int row, double[] array)
Extract row to provided arrayint
hashCode()
Returns a hash code value based on the data values in this object.void
invert()
Inverts this matrix in place.void
invert(Matrix matrix)
Set to the inverse of the provided matrix.boolean
isAffine()
Returnstrue
if this matrix is an affine transform.boolean
isIdentity()
Returnstrue
if this matrix is an identity matrix.boolean
isIdentity(double tolerance)
Returnstrue
if this matrix is an identity matrix using the provided tolerance.void
mul(double scalar)
Sets this matrix to the result of multiplying itself with the provided scalar.void
mul(double scalar, Matrix matrix)
Sets the value of this matrix to the result of multiplying the provided scalar and matrix.void
mul(Matrix matrix)
Sets the value of this matrix to the result of multiplying itself with the specified matrix.void
mul(Matrix matrix1, Matrix matrix2)
Sets the value of this matrix to the result of multiplying matrix1 and matrix2.void
multiply(Matrix matrix)
Sets the value of this matrix to the result of multiplying itself with the specified matrix.void
negate()
Negates the value of this matrix:this = -this
.void
negate(Matrix matrix)
Negates the value of this matrix:this = -matrix
.void
setColumn(int column, double... values)
Sets the value of the column using an array of values.void
setElement(int row, int col, double value)
Modifies the value at the specified row and column of this matrix.void
setIdentity()
Sets this matrix to the identity matrix.void
setRow(int row, double... values)
Sets the value of the row using an array of values.void
setZero()
Sets all the values in this matrix to zero.void
sub(double scalar)
In-place matrix subtraction:this - scalar
.void
sub(double scalar, Matrix matrix)
Set to the difference ofscalar - matrix2
.void
sub(Matrix matrix)
In-place matrix subtraction:this - matrix
.void
sub(Matrix matrix1, Matrix matrix2)
Set to the difference ofmatrix1 - matrix2
.String
toString()
Returns a string representation of this matrix.void
transpose()
Sets the value of this matrix to its transpose.void
transpose(Matrix matrix)
Set to the transpose of the provided matrix.
-
-
-
Field Detail
-
SIZE
public static final int SIZE
The matrix size, which is 2.- See Also:
- Constant Field Values
-
m00
public double m00
The first matrix element in the first row.
-
m01
public double m01
The second matrix element in the first row.
-
m10
public double m10
The first matrix element in the second row.
-
m11
public double m11
The second matrix element in the second row.
-
-
Constructor Detail
-
Matrix2
public Matrix2()
Creates a new identity matrix.
-
Matrix2
public Matrix2(double m00, double m01, double m10, double m11)
Creates a new matrix initialized to the specified values.
-
Matrix2
public Matrix2(Matrix matrix)
-
-
Method Detail
-
getNumRow
public final int getNumRow()
Returns the number of rows in this matrix, which is always 2 in this implementation.
-
getNumCol
public final int getNumCol()
Returns the number of colmuns in this matrix, which is always 2 in this implementation.
-
getElement
public final double getElement(int row, int col)
Returns the element at the specified index.- Specified by:
getElement
in interfaceMatrix
- Specified by:
getElement
in interfaceXMatrix
- Parameters:
row
- The row number to be retrieved (zero indexed).col
- The column number to be retrieved (zero indexed).- Returns:
- The value at the indexed element.
-
setElement
public final void setElement(int row, int col, double value)
Modifies the value at the specified row and column of this matrix.- Specified by:
setElement
in interfaceMatrix
- Parameters:
row
- The row number to be retrieved (zero indexed).col
- The column number to be retrieved (zero indexed).value
- The new matrix element value.
-
setZero
public final void setZero()
Sets all the values in this matrix to zero.
-
setIdentity
public final void setIdentity()
Sets this matrix to the identity matrix.- Specified by:
setIdentity
in interfaceXMatrix
-
isIdentity
public final boolean isIdentity()
Returnstrue
if this matrix is an identity matrix.- Specified by:
isIdentity
in interfaceMatrix
- Returns:
true
if this matrix is an identity matrix.
-
isIdentity
public final boolean isIdentity(double tolerance)
Returnstrue
if this matrix is an identity matrix using the provided tolerance. This method is equivalent to computing the difference between this matrix and an identity matrix of identical size, and returningtrue
if and only if all differences are smaller than or equal totolerance
.- Specified by:
isIdentity
in interfaceXMatrix
- Parameters:
tolerance
- The tolerance value.- Returns:
true
if this matrix is close enough to the identity matrix given the tolerance value.
-
isAffine
public final boolean isAffine()
Returnstrue
if this matrix is an affine transform. A transform is affine if the matrix is square and last row contains only zeros, except in the last column which contains 1.
-
negate
public final void negate()
Negates the value of this matrix:this = -this
.
-
negate
public void negate(Matrix matrix)
Description copied from interface:XMatrix
Negates the value of this matrix:this = -matrix
.
-
transpose
public final void transpose()
Sets the value of this matrix to its transpose.
-
transpose
public void transpose(Matrix matrix)
Description copied from interface:XMatrix
Set to the transpose of the provided matrix.
-
invert
public final void invert()
Inverts this matrix in place.
-
invert
public void invert(Matrix matrix) throws SingularMatrixException
Description copied from interface:XMatrix
Set to the inverse of the provided matrix.- Specified by:
invert
in interfaceXMatrix
- Parameters:
matrix
- The matrix that is to be inverted. Not modified.- Throws:
SingularMatrixException
- if this matrix is not invertible.
-
multiply
public final void multiply(Matrix matrix)
Description copied from interface:XMatrix
Sets the value of this matrix to the result of multiplying itself with the specified matrix. In other words, performsthis
=this
×matrix
. In the context of coordinate transformations, this is equivalent toAffineTransform.concatenate
: first transforms by the supplied transform and then transform the result by the original transform.
-
equals
public boolean equals(Matrix matrix, double tolerance)
Compares the element values.
-
equals
public boolean equals(Object object)
Returnstrue
if the specified object is of typeMatrix2
and all of the data members are equal to the corresponding data members in this matrix.
-
hashCode
public int hashCode()
Returns a hash code value based on the data values in this object.
-
toString
public String toString()
Returns a string representation of this matrix. The returned string is implementation dependent. It is usually provided for debugging purposes only.
-
clone
public Matrix2 clone()
Returns a clone of this matrix.
-
getRow
public void getRow(int row, double[] array)
Description copied from interface:XMatrix
Extract row to provided array
-
setRow
public void setRow(int row, double... values)
Description copied from interface:XMatrix
Sets the value of the row using an array of values.
-
getColumn
public void getColumn(int column, double[] array)
Description copied from interface:XMatrix
Extract col to provided array.
-
setColumn
public void setColumn(int column, double... values)
Description copied from interface:XMatrix
Sets the value of the column using an array of values.
-
add
public void add(double scalar)
Description copied from interface:XMatrix
Performs an in-place scalar addition.
-
add
public void add(double scalar, XMatrix matrix)
Description copied from interface:XMatrix
Set to the scalar addition ofscalar+matrix
-
add
public void add(XMatrix matrix)
Description copied from interface:XMatrix
Set to the matrix addition ofthis+matrix
.
-
add
public void add(XMatrix matrix1, XMatrix matrix2)
Description copied from interface:XMatrix
Set to the matrix addition ofmatrix1+matrix2
.
-
determinate
public double determinate()
Description copied from interface:XMatrix
Computes the determinant- Specified by:
determinate
in interfaceXMatrix
-
mul
public void mul(double scalar)
Description copied from interface:XMatrix
Sets this matrix to the result of multiplying itself with the provided scalar.
-
mul
public void mul(double scalar, Matrix matrix)
Description copied from interface:XMatrix
Sets the value of this matrix to the result of multiplying the provided scalar and matrix.
-
mul
public void mul(Matrix matrix)
Description copied from interface:XMatrix
Sets the value of this matrix to the result of multiplying itself with the specified matrix. In other words, performsthis
=this
×matrix
. In the context of coordinate transformations, this is equivalent toAffineTransform.concatenate
: first transforms by the supplied transform and then transform the result by the original transform.
-
mul
public void mul(Matrix matrix1, Matrix matrix2)
Description copied from interface:XMatrix
Sets the value of this matrix to the result of multiplying matrix1 and matrix2.
-
sub
public void sub(double scalar)
Description copied from interface:XMatrix
In-place matrix subtraction:this - scalar
.
-
sub
public void sub(double scalar, Matrix matrix)
Description copied from interface:XMatrix
Set to the difference ofscalar - matrix2
.
-
sub
public void sub(Matrix matrix)
Description copied from interface:XMatrix
In-place matrix subtraction:this - matrix
.
-
-