PgMatrix

A structure specifying a transformation between user-space coordinates and device coordinates. The transformation is given by

<programlisting> x_device = x_user * matrix->xx + y_user * matrix->xy + matrix->x0; y_device = x_user * matrix->yx + y_user * matrix->yy + matrix->y0; </programlisting>

Constructors

this
this(PangoMatrix* pangoMatrix, bool ownedRef)

Sets our main struct and passes it to the parent class.

Destructor

~this
~this()
Undocumented in source.

Members

Functions

concat
void concat(PgMatrix newMatrix)

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

copy
PgMatrix copy()

Copies a #PangoMatrix.

free
void free()

Free a #PangoMatrix created with pango_matrix_copy().

getFontScaleFactor
double getFontScaleFactor()

Returns the scale factor of a matrix on the height of the font. That is, the scale factor in the direction perpendicular to the vector that the X coordinate is mapped to. If the scale in the X coordinate is needed as well, use pango_matrix_get_font_scale_factors().

getFontScaleFactors
void getFontScaleFactors(double xscale, double yscale)

Calculates the scale factor of a matrix on the width and height of the font. That is, @xscale is the scale factor in the direction of the X coordinate, and @yscale is the scale factor in the direction perpendicular to the vector that the X coordinate is mapped to.

getPgMatrixStruct
PangoMatrix* getPgMatrixStruct(bool transferOwnership)

Get the main Gtk struct

getStruct
void* getStruct()

the main Gtk struct as a void*

rotate
void rotate(double degrees)

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

scale
void scale(double scaleX, double scaleY)

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.

transformDistance
void transformDistance(double dx, double dy)

Transforms the distance vector (@dx,@dy) by @matrix. This is similar to pango_matrix_transform_point() except that the translation components of the transformation are ignored. The calculation of the returned vector is as follows:

transformPixelRectangle
void transformPixelRectangle(PangoRectangle rect)

First transforms the @rect using @matrix, then calculates the bounding box of the transformed rectangle. The rectangle should be in device units (pixels).

transformPoint
void transformPoint(double x, double y)

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

transformRectangle
void transformRectangle(PangoRectangle rect)

First transforms @rect using @matrix, then calculates the bounding box of the transformed rectangle. The rectangle should be in Pango units.

translate
void translate(double tx, double ty)

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

Static functions

extentsToPixels
void extentsToPixels(PangoRectangle* inclusive, PangoRectangle* nearest)

Converts extents from Pango units to device units, dividing by the %PANGO_SCALE factor and performing rounding.

getType
GType getType()
unitsFromDouble
int unitsFromDouble(double d)

Converts a floating-point number to Pango units: multiplies it by %PANGO_SCALE and rounds to nearest integer.

unitsToDouble
double unitsToDouble(int i)

Converts a number in Pango units to floating-point: divides it by %PANGO_SCALE.

Variables

ownedRef
bool ownedRef;
Undocumented in source.
pangoMatrix
PangoMatrix* pangoMatrix;

the main Gtk struct

Meta