igeo

## Class IMatrix3

- java.lang.Object
- - igeo.IMatrix
  - - igeo.IMatrix3

- All Implemented Interfaces:
    IMatrix3I, IMatrix3Op, IMatrixI, IMatrixOp, IParameter, IVal

      public class IMatrix3
      extends IMatrix
      implements IMatrix3I

  Class of 3x3 numerical matrix.
  Author:
    Satoru Sugihara

- - ### Field Summary

    - ### Fields inherited from class igeo.IMatrix

      `columnNum, rowNum, val`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `IMatrix3()`
    `IMatrix3(double v11, double v12, double v13, double v21, double v22, double v23, double v31, double v32, double v33)`
    `IMatrix3(IMatrix3 m)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `IMatrix3` | `cp()` alias of dup()
    `double` | `determinant()`
    `static double` | `determinant(double v00, double v01, double v02, double v10, double v11, double v12, double v20, double v21, double v22)`
    `IMatrix3` | `dup()`
    `IMatrix3` | `get()`
    `static IMatrix3` | `getRotation(IVec axis, double angle)`
    `static IMatrix3` | `getTranslate(double x, double y)`
    `static IMatrix3` | `getTranslate(IVec p)`
    `static IMatrix3` | `getXRotation(double angle)`
    `static IMatrix3` | `getYRotation(double angle)`
    `static IMatrix3` | `getZRotation(double angle)`
    `IMatrix3` | `invert()`
    `IMatrix3` | `mul(IMatrix3 m)` m is applied from right side and update the content of this without creating new instance.
    `IMatrix3` | `mul(IMatrix3I m)`
    `IVec` | `mul(IVec v)` vector is treated as vertical vector
    `IVec2` | `mul(IVec2 v)` vector is treated as vertical vector
    `IVec2` | `mul(IVec2I v)` vector is treated as vertical vector
    `IVec` | `mul(IVecI v)` vector is treated as vertical vector
    `IMatrix3` | `set(double v11, double v12, double v13, double v21, double v22, double v23, double v31, double v32, double v33)`
    `IMatrix3` | `set(IDoubleI v11, IDoubleI v12, IDoubleI v13, IDoubleI v21, IDoubleI v22, IDoubleI v23, IDoubleI v31, IDoubleI v32, IDoubleI v33)`

    - ### Methods inherited from class igeo.IMatrix

      `add, add, columnNum, columnNum, columnNum, det, determinant, determinant, div, div, get, get, get, id, mul, mul, mul, mul, rowNum, rowNum, rowNum, set, set, set, set, set, set, setId, setRange, setZero, sub, sub, toArray, toArray, toString, zero`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface igeo.IMatrixI

      `add, columnNum, columnNum, columnNum, determinant, determinant, div, div, get, get, get, mul, mul, mul, rowNum, rowNum, rowNum, set, set, set, set, set, setId, setZero, sub`

- - ### Constructor Detail

    - #### IMatrix3

          public IMatrix3()

    - #### IMatrix3

          public IMatrix3(double v11,
                  double v12,
                  double v13,
                  double v21,
                  double v22,
                  double v23,
                  double v31,
                  double v32,
                  double v33)

    - #### IMatrix3

          public IMatrix3(IMatrix3 m)

  - ### Method Detail

    - #### get

          public IMatrix3 get()

      Specified by:
        `get` in interface `IMatrix3I`
      Specified by:
        `get` in interface `IMatrix3Op`
      Specified by:
        `get` in interface `IMatrixOp`
      Specified by:
        `get` in interface `IParameter`
      Overrides:
        `get` in class `IMatrix`

    - #### set

          public IMatrix3 set(double v11,
                     double v12,
                     double v13,
                     double v21,
                     double v22,
                     double v23,
                     double v31,
                     double v32,
                     double v33)

      Specified by:
        `set` in interface `IMatrix3I`

    - #### set

          public IMatrix3 set(IDoubleI v11,
                     IDoubleI v12,
                     IDoubleI v13,
                     IDoubleI v21,
                     IDoubleI v22,
                     IDoubleI v23,
                     IDoubleI v31,
                     IDoubleI v32,
                     IDoubleI v33)

      Specified by:
        `set` in interface `IMatrix3I`

    - #### dup

          public IMatrix3 dup()

      Specified by:
        `dup` in interface `IMatrix3I`
      Specified by:
        `dup` in interface `IMatrixI`
      Overrides:
        `dup` in class `IMatrix`

    - #### cp

          public IMatrix3 cp()

      Description copied from interface: `IMatrixI`
      alias of dup()
      Specified by:
        `cp` in interface `IMatrix3I`
      Specified by:
        `cp` in interface `IMatrixI`
      Overrides:
        `cp` in class `IMatrix`

    - #### determinant

          public double determinant()

      Specified by:
        `determinant` in interface `IMatrixI`
      Overrides:
        `determinant` in class `IMatrix`

    - #### determinant

          public static double determinant(double v00,
                           double v01,
                           double v02,
                           double v10,
                           double v11,
                           double v12,
                           double v20,
                           double v21,
                           double v22)

    - #### invert

          public IMatrix3 invert()

      Specified by:
        `invert` in interface `IMatrixI`
      Overrides:
        `invert` in class `IMatrix`

    - #### mul

          public IMatrix3 mul(IMatrix3 m)

      m is applied from right side and update the content of this without creating new instance. it returns itself.

    - #### mul

          public IMatrix3 mul(IMatrix3I m)

      Specified by:
        `mul` in interface `IMatrix3I`

    - #### mul

          public IVec mul(IVecI v)

      vector is treated as vertical vector
      Specified by:
        `mul` in interface `IMatrix3I`

    - #### mul

          public IVec mul(IVec v)

      vector is treated as vertical vector

    - #### mul

          public IVec2 mul(IVec2I v)

      vector is treated as vertical vector
      Specified by:
        `mul` in interface `IMatrix3I`

    - #### mul

          public IVec2 mul(IVec2 v)

      vector is treated as vertical vector

    - #### getXRotation

          public static IMatrix3 getXRotation(double angle)

    - #### getYRotation

          public static IMatrix3 getYRotation(double angle)

    - #### getZRotation

          public static IMatrix3 getZRotation(double angle)

    - #### getRotation

          public static IMatrix3 getRotation(IVec axis,
                             double angle)

    - #### getTranslate

          public static IMatrix3 getTranslate(double x,
                              double y)

    - #### getTranslate

          public static IMatrix3 getTranslate(IVec p)