# Pango.Matrix

#### Description [src]

``````struct PangoMatrix {
double xx;
double xy;
double yx;
double yy;
double x0;
double y0;
}

``````

A `PangoMatrix` specifies a transformation between user-space and device coordinates.

The transformation is given by

``````x_device = x_user * matrix->xx + y_user * matrix->xy + matrix->x0;
y_device = x_user * matrix->yx + y_user * matrix->yy + matrix->y0;
``````
###### Structure members
 `xx` 1st component of the transformation matrix `xy` 2nd component of the transformation matrix `yx` 3rd component of the transformation matrix `yy` 4th component of the transformation matrix `x0` x translation `y0` y translation

#### Instance methods

###### pango_matrix_concat

Changes the transformation represented by `matrix` to be the transformation given by first applying transformation given by `new_matrix` then applying the original transformation.

###### pango_matrix_copy

Copies a `PangoMatrix`.

###### pango_matrix_free

Free a `PangoMatrix`.

###### pango_matrix_get_font_scale_factor

Returns the scale factor of a matrix on the height of the font.

###### pango_matrix_get_font_scale_factors

Calculates the scale factor of a matrix on the width and height of the font.

###### pango_matrix_rotate

Changes the transformation represented by `matrix` to be the transformation given by first rotating by `degrees` degrees counter-clockwise then applying the original transformation.

###### pango_matrix_scale

Changes the transformation represented by `matrix` to be the transformation given by first scaling by `sx` in the X direction and `sy` in the Y direction then applying the original transformation.

###### pango_matrix_transform_distance

Transforms the distance vector (`dx`,`dy`) by `matrix`.

###### pango_matrix_transform_pixel_rectangle

First transforms the `rect` using `matrix`, then calculates the bounding box of the transformed rectangle.

###### pango_matrix_transform_point

Transforms the point (`x`, `y`) by `matrix`.

###### pango_matrix_transform_rectangle

First transforms `rect` using `matrix`, then calculates the bounding box of the transformed rectangle.

###### pango_matrix_translate

Changes the transformation represented by `matrix` to be the transformation given by first translating by (`tx`, `ty`) then applying the original transformation.