Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Transformation: initial work for Transformation matrix
This adds Transformation, a transformation matrix object. This is an affine transformation matrix, which supports translate, rotate, and scale out of the box (similar to Cairo). Additionally, you can supply your own transformations by initializing your own transformation, and multiplying it against an existing matrix. Methods exist for transforming co-ordinates between user space (e.g., the co-ordinates and figures you supply to Path and future similar interfaces) and device space (what ultimately gets recorded to write to the surface), and vice-versa (applying the inverse). Methods also exist for transforming distance (which skip the translation vector). The distance methods are particularly important during the plotting phase where we need to use distance to transform line widths and pen radii. Next steps to follow: Adding transformations to Path.
- Loading branch information