Class Matrix2

    • 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[] elements)
      Creates a new matrix initialized to the specified values.
      Matrix2​(double m00, double m01, double m10, double m11)
      Creates a new matrix initialized to the specified values.
    • Field Detail

      • 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.
        Parameters:
        m00 - the first matrix element in the first row.
        m01 - the second matrix element in the first row.
        m10 - the first matrix element in the second row.
        m11 - the second matrix element in the second row.
    • Method Detail

      • castOrCopy

        public static Matrix2 castOrCopy​(Matrix matrix)
                                  throws MismatchedMatrixSizeException
        Casts or copies the given matrix to a Matrix2 implementation. If the given matrix is already an instance of Matrix2, then it is returned unchanged. Otherwise this method verifies the matrix size, then copies all elements in a new Matrix2 object.
        Parameters:
        matrix - the matrix to cast or copy, or null.
        Returns:
        the matrix argument if it can be safely casted (including null argument), or a copy of the given matrix otherwise.
        Throws:
        Mismatched­Matrix­Size­Exception - if the size of the given matrix is not 2×2.
      • getNumRow

        public final int getNumRow()
        Returns the number of rows in this matrix, which is always 2 in this implementation.
        Returns:
        always 2.
      • getNumCol

        public final int getNumCol()
        Returns the number of columns in this matrix, which is always 2 in this implementation.
        Returns:
        always 2.
      • getElement

        public final double getElement​(int row,
                                       int column)
        Retrieves the value at the specified row and column of this matrix. This method can be invoked when the matrix size or type is unknown. If the matrix is known to be an instance of Matrix2, then the m00m11 fields can be read directly for efficiency.
        Specified by:
        get­Element in interface Matrix
        Specified by:
        get­Element in class Matrix­SIS
        Parameters:
        row - the row index, which can only be 0 or 1.
        column - the column index, which can only be 0 or 1.
        Returns:
        the current value at the given row and column.
      • setElement

        public final void setElement​(int row,
                                     int column,
                                     double value)
        Modifies the value at the specified row and column of this matrix. This method can be invoked when the matrix size or type is unknown. If the matrix is known to be an instance of Matrix2, then the m00m11 fields can be set directly for efficiency.
        Parameters:
        row - the row index, which can only be 0 or 1.
        column - the column index, which can only be 0 or 1.
        value - the new value to set at the given row and column.
      • getElements

        public final double[] getElements()
        Returns all matrix elements in a flat, row-major (column indices vary fastest) array. The array length is 4.
        Overrides:
        get­Elements in class Matrix­SIS
        Returns:
        a copy of all current matrix elements in a row-major array.
      • setElements

        public final void setElements​(double[] elements)
        Sets all matrix elements from a flat, row-major (column indices vary fastest) array. The array length shall be 4.
        Specified by:
        set­Elements in class Matrix­SIS
        Parameters:
        elements - The new matrix elements in a row-major array.
        See Also:
        Matrices​.create(int, int, double[])
      • transpose

        public void transpose()
        Sets the value of this matrix to its transpose.
        Specified by:
        transpose in class Matrix­SIS
      • normalizeColumns

        public void normalizeColumns()
        Normalizes all columns in-place. Each columns in this matrix is considered as a vector. For each column (vector), this method computes the magnitude (vector length) as the square root of the sum of all square values. Then, all values in the column are divided by that magnitude.

        This method is useful when the matrix is a transform derivative. In such matrix, each column is a vector representing the displacement in target space when an coordinate in the source space is increased by one. Invoking this method turns those vectors into unitary vectors, which is useful for forming the basis of a new coordinate system.

        Overrides:
        normalize­Columns in class Matrix­SIS
      • equals

        public boolean equals​(Object object)
        Returns true if the specified object is of type Matrix2 and all of the data members are equal to the corresponding data members in this matrix.
        Specified by:
        equals in interface Lenient­Comparable
        Overrides:
        equals in class Matrix­SIS
        Parameters:
        object - the object to compare with this matrix for equality.
        Returns:
        true if the given object is equal to this matrix.
        See Also:
        Comparison­Mode​.STRICT
      • hashCode

        public int hashCode()
        Returns a hash code value based on the data values in this object.
        Overrides:
        hash­Code in class Matrix­SIS
        Returns:
        a hash code value for this matrix.