Struct Matrix

Wrapper for cairo's cairo_matrix_t. A cairo_matrix_t holds an affine transformation, such as a scale, rotation, shear, or a combination of those. The transformation of a point (x, y) is given by:

x_new = xx * x + xy * y + x0;
y_new = yx * x + yy * y + y0;

Constructors

Name Description
this Sets matrix to be the affine transformation given by xx, yx, xy, yy, x0, y0. The transformation is given by:

Fields

Name Type Description
nativeMatrix cairo_matrix_t Cairo's cairo_matrix_t struct

Methods

Name Description
initIdentity Modifies matrix to be an identity transformation.
initRotate Initialized matrix to a transformation that rotates by radians.
initScale nitializes matrix to a transformation that scales by sx and sy in the X and Y dimensions, respectively.
initTranslate Initializes matrix to a transformation that translates by tx and ty in the X and Y dimensions, respectively.
invert Changes matrix to be the inverse of its original value. Not all transformation matrices have inverses; if the matrix collapses points together (it is degenerate), then it has no inverse and this function will fail.
opBinary Multiplies the affine transformations in a and b together and returns the result. The effect of the resulting transformation is to first apply the transformation in a to the coordinates and then apply the transformation in b to the coordinates.
rotate Applies rotation by radians to the transformation in matrix. The effect of the new transformation is to first rotate the coordinates by radians, then apply the original transformation to the coordinates.
scale Applies scaling by sx, sy to the transformation in matrix. The effect of the new transformation is to first scale the coordinates by sx and sy, then apply the original transformation to the coordinates.
transformDistance Transforms the distance vector (dx,dy) by matrix. This is similar to transformPoint except that the translation components of the transformation are ignored. The calculation of the returned vector is as follows:
transformPoint Transforms the point (x, y) by matrix.
translate Applies a translation by tx, ty to the transformation in matrix. The effect of the new transformation is to first translate the coordinates by tx and ty, then apply the original transformation to the coordinates.

Authors

Johannes Pfau cairoD
Andrej Mitrovic cairoD
cairo team cairo

Copyright

License

cairoD wrapper/bindings Boost License 1.0
cairo LGPL 2.1 / MPL 1.1