Functions
Functions
Graphics » HAL GFX » GFX MATRIX3X3
Collaboration diagram for Functions:

## Functions
void | hal_gfx_mat3x3_load_identity (hal_gfx_matrix3x3_t m)
| Load Identity Matrix. More...
void | hal_gfx_mat3x3_translate (hal_gfx_matrix3x3_t m, float tx, float ty)
| Apply translate transformation. More...
void | hal_gfx_mat3x3_scale (hal_gfx_matrix3x3_t m, float sx, float sy)
| Apply scale transformation. More...
void | hal_gfx_mat3x3_shear (hal_gfx_matrix3x3_t m, float shx, float shy)
| Apply shear transformation. More...
void | hal_gfx_mat3x3_mirror (hal_gfx_matrix3x3_t m, int mx, int my)
| Apply mirror transformation. More...
void | hal_gfx_mat3x3_rotate (hal_gfx_matrix3x3_t m, float angle_degrees)
| Apply rotation transformation. More...
void | hal_gfx_mat3x3_mul (hal_gfx_matrix3x3_t m, hal_gfx_matrix3x3_t _m)
| Multiply two 3x3 matrices ( m = m*_m) More...
void | hal_gfx_mat3x3_mul_vec (hal_gfx_matrix3x3_t m, float *x, float *y)
| Multiply vector with matrix. More...
void | hal_gfx_mat3x3_mul_vec_affine (hal_gfx_matrix3x3_t m, float *x, float *y)
| Multiply vector with affine matrix. More...
void | hal_gfx_mat3x3_adj (hal_gfx_matrix3x3_t m)
| Calculate adjoint. More...
void | hal_gfx_mat3x3_div_scalar (hal_gfx_matrix3x3_t m, float s)
| Divide matrix with scalar value. More...
int | hal_gfx_mat3x3_invert (hal_gfx_matrix3x3_t m)
| Invert matrix. More...
int | hal_gfx_mat3x3_square_to_quad (float dx0, float dy0, float dx1, float dy1, float dx2, float dy2, float dx3, float dy3, hal_gfx_matrix3x3_t m)
| Square to quad transformation. More...
int | hal_gfx_mat3x3_quad_to_rect (int width, int height, float sx0, float sy0, float sx1, float sy1, float sx2, float sy2, float sx3, float sy3, hal_gfx_matrix3x3_t m)
| Map rectangle to quadrilateral. More...

## Detailed Description

## Function Documentation

## ◆ hal_gfx_mat3x3_adj()

void hal_gfx_mat3x3_adj | ( | hal_gfx_matrix3x3_t | m | ) |

Calculate adjoint.

Parameters

  [in] | m | Matrix

## ◆ hal_gfx_mat3x3_div_scalar()

void hal_gfx_mat3x3_div_scalar | ( | hal_gfx_matrix3x3_t | m,
|  | float | s
| ) |  |

Divide matrix with scalar value.

Parameters

  [in] | m | Matrix to divide
  [in] | s | scalar value

## ◆ hal_gfx_mat3x3_invert()

int hal_gfx_mat3x3_invert | ( | hal_gfx_matrix3x3_t | m | ) |

Invert matrix.

Parameters

  [in] | m | Matrix to invert

## ◆ hal_gfx_mat3x3_load_identity()

void hal_gfx_mat3x3_load_identity | ( | hal_gfx_matrix3x3_t | m | ) |

Load Identity Matrix.

Parameters

  [in] | m | Matrix to be loaded

## ◆ hal_gfx_mat3x3_mirror()

void hal_gfx_mat3x3_mirror | ( | hal_gfx_matrix3x3_t | m,
|  | int | mx,
|  | int | my
| ) |  |

Apply mirror transformation.

Parameters

  [in] | m | Matrix to apply transformation
  [in] | mx | if non-zero, mirror horizontally
  [in] | my | if non-zero, mirror vertically

## ◆ hal_gfx_mat3x3_mul()

void hal_gfx_mat3x3_mul | ( | hal_gfx_matrix3x3_t | m,
|  | hal_gfx_matrix3x3_t | _m
| ) |  |

Multiply two 3x3 matrices ( m = m*_m)

Parameters

  [in] | m | left matrix, will be overwritten by the result
  [in] | _m | right matrix

## ◆ hal_gfx_mat3x3_mul_vec()

void hal_gfx_mat3x3_mul_vec | ( | hal_gfx_matrix3x3_t | m,
|  | float * | x,
|  | float * | y
| ) |  |

Multiply vector with matrix.

Parameters

  [in] | m | Matrix to multiply with
  [in] | x | Vector x coefficient
  [in] | y | Vector y coefficient

## ◆ hal_gfx_mat3x3_mul_vec_affine()

void hal_gfx_mat3x3_mul_vec_affine | ( | hal_gfx_matrix3x3_t | m,
|  | float * | x,
|  | float * | y
| ) |  |

Multiply vector with affine matrix.

Parameters

  [in] | m | Matrix to multiply with
  [in] | x | Vector x coefficient
  [in] | y | Vector y coefficient

## ◆ hal_gfx_mat3x3_quad_to_rect()

int hal_gfx_mat3x3_quad_to_rect | ( | int | width,
|  | int | height,
|  | float | sx0,
|  | float | sy0,
|  | float | sx1,
|  | float | sy1,
|  | float | sx2,
|  | float | sy2,
|  | float | sx3,
|  | float | sy3,
|  | hal_gfx_matrix3x3_t | m
| ) |  |

Map rectangle to quadrilateral.

Parameters

  [in] | width | Rectangle width
  [in] | height | Rectangle height
  [in] | sx0 | x coordinate at the first vertex of the quadrilateral
  [in] | sy0 | y coordinate at the first vertex of the quadrilateral
  [in] | sx1 | x coordinate at the second vertex of the quadrilateral
  [in] | sy1 | y coordinate at the second vertex of the quadrilateral
  [in] | sx2 | x coordinate at the third vertex of the quadrilateral
  [in] | sy2 | y coordinate at the third vertex of the quadrilateral
  [in] | sx3 | x coordinate at the fourth vertex of the quadrilateral
  [in] | sy3 | y coordinate at the fourth vertex of the quadrilateral
  [in] | m | Mapping matrix

## ◆ hal_gfx_mat3x3_rotate()

void hal_gfx_mat3x3_rotate | ( | hal_gfx_matrix3x3_t | m,
|  | float | angle_degrees
| ) |  |

Apply rotation transformation.

Parameters

  [in] | m | Matrix to apply transformation
  [in] | angle_degrees | Angle to rotate in degrees

## ◆ hal_gfx_mat3x3_scale()

void hal_gfx_mat3x3_scale | ( | hal_gfx_matrix3x3_t | m,
|  | float | sx,
|  | float | sy
| ) |  |

Apply scale transformation.

Parameters

  [in] | m | Matrix to apply transformation
  [in] | sx | X scaling factor
  [in] | sy | Y scaling factor

## ◆ hal_gfx_mat3x3_shear()

void hal_gfx_mat3x3_shear | ( | hal_gfx_matrix3x3_t | m,
|  | float | shx,
|  | float | shy
| ) |  |

Apply shear transformation.

Parameters

  [in] | m | Matrix to apply transformation
  [in] | shx | X shearing factor
  [in] | shy | Y shearing factor

## ◆ hal_gfx_mat3x3_square_to_quad()

int hal_gfx_mat3x3_square_to_quad | ( | float | dx0,
|  | float | dy0,
|  | float | dx1,
|  | float | dy1,
|  | float | dx2,
|  | float | dy2,
|  | float | dx3,
|  | float | dy3,
|  | hal_gfx_matrix3x3_t | m
| ) |  |

Square to quad transformation.

Parameters

  [in] | dx0 | x coordinate at the first vertex of the quadrilateral
  [in] | dy0 | y coordinate at the first vertex of the quadrilateral
  [in] | dx1 | x coordinate at the second vertex of the quadrilateral
  [in] | dy1 | y coordinate at the second vertex of the quadrilateral
  [in] | dx2 | x coordinate at the third vertex of the quadrilateral
  [in] | dy2 | y coordinate at the third vertex of the quadrilateral
  [in] | dx3 | x coordinate at the fourth vertex of the quadrilateral
  [in] | dy3 | y coordinate at the fourth vertex of the quadrilateral
  [in] | m | Store converted matrix

## ◆ hal_gfx_mat3x3_translate()

void hal_gfx_mat3x3_translate | ( | hal_gfx_matrix3x3_t | m,
|  | float | tx,
|  | float | ty
| ) |  |

Apply translate transformation.

Parameters

  [in] | m | Matrix to apply transformation
  [in] | tx | X translation factor
  [in] | ty | Y translation factor