# Class: Matrix

## Core.Math. Matrix

A utility class that represents transformations and transformation states.

#### new Matrix(Rows, Columns)

  Creates a new Matrix.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `Rows` | number | the number of rows
  `Columns` | number | the number of columns

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `Rows` | number | the number of rows
  `Columns` | number | the number of columns

### Members

#### <static> Identity

  Returns a 3x3 identity matrix.

### Methods

#### <static> createTransformWithRespectTo(transforms [, origin])

  Multiples a series of transformations to create a final transformation matrix. Optionally, provide a point to transform with respect to. Note that the order of transformations in the array matters and should be the logical order you expect them to execute in.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `transforms` | Array.<Core.Math.Matrix> |  | An array of ordered transformations
  `origin` | Core.Math.Point | <optional> | A point to transform with respect to. Default: (0, 0)

  ##### Returns:

  The result matrix
  Type
    Core.Math.Matrix

#### <static> fromMatrix2D(mat2d)

  Creates a matrix from Matrix2D.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `mat2d` | Core.PDFNet.Matrix2D | The PDFNet matrix

  ##### Returns:

  The matrix that represents the original
  Type
    Core.Math.Matrix

#### <static> multiply(left, right)

  Multiplies two matrices together

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `left` | Core.Math.Matrix | The left matrix
  `right` | Core.Math.Matrix | The right Matrix

  ##### Returns:

  The result matrix
  Type
    Core.Math.Matrix

#### clone()

  Clones this matrix.

  ##### Returns:

  A clone of this matrix

#### determinent()

  Calculates the determinant of the matrix. Only works for 3x3!

  ##### Returns:

  The determinant
  Type
    number

#### get(row, column)

  Gets a value in a particular cell in the matrix.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `row` | number | The row number
  `column` | number | The column number

  ##### Returns:

  Type
    number

#### inverse()

  Get an inverse matrix. This is helpful for reversing transformations. This function will return null if no inverse was found.

  ##### Returns:

  The inverse matrix of this matrix
  Type
    Core.Math.Matrix

#### multiply(rightMatrix)

  Multiples this matrix (left) against another matrix (right).

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `rightMatrix` | Core.Math.Matrix | The other matrix

  ##### Returns:

  The result matrix
  Type
    Core.Math.Matrix

#### set(row, column, val)

  Sets the value in a particular cell in the matrix.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `row` | number | The row number
  `column` | number | The column number
  `val` | number | The number to set

#### setRotation(angle [, inRadians])

  Sets the rotational values of the matrix.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `angle` | number |  |  | The amount to rotate by.
  `inRadians` | boolean | <optional> | false | Whether the amount is in radians. Default: false

#### setScale(sx, sy)

  Sets the scale transformation values.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `sx` | number | The amount to scale horizontally
  `sy` | number | The amount to scale vertically

#### setScaleX(sx)

  Set the X scale transformation value.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `sx` |  | The amount to scale horizontally

#### setScaleY(sy)

  Set the Y scale transformation value.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `sy` |  | The amount to scale vertically

#### setSkew(sx, sy)

  Sets the skew transformation values.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `sx` |  | The amount to skew horizontally
  `sy` |  | The amount to skew vertically

#### setSkewX(sx)

  Sets the X skew transformation value.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `sx` |  | The amount to skew horizontally.

#### setSkewY(sy)

  Sets the Y skew transformation value.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `sy` |  | The amount to skew vertically.

#### setTranslate(tx, ty)

  Sets the translate transformation values.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tx` |  | The amount to translate horizontally
  `ty` |  | The amount to translate vertically

#### setTranslateX(tx)

  Sets the X translate transformation value.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tx` |  | The amount to translate horizontally

#### setTranslateY(ty)

  Set the Y translate transformation value.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `ty` |  | The amount to translate vertically

#### toTransform()

  Gets an array of values to use in an HTML Canvas context transform.

  ##### Returns:

  Array of values
  Type
    Array.<number>

#### transpose()

  Flips the values of the matrix using the diagonal row.

#### Search results