Mozilla2:GFXMatrix
From MozillaWiki
gfxMatrix Class
Since we'll be doing scaling, translations and rotates, we need some sort of matrix class. This class is really just an affine transform and might should be renamed to indicate that.
The API
Notes
We may just want to implement this using cairo_matrix objects instead, although there is more overhead to doing that.
Cairo currently uses row vectors to transform points, which is less optimal than if we used column vectors.