Skip to content

Commit

Permalink
Transformation: initial work for Transformation matrix
Browse files Browse the repository at this point in the history
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
vancluever committed Oct 10, 2024
1 parent 285a796 commit 94e81a3
Show file tree
Hide file tree
Showing 4 changed files with 747 additions and 0 deletions.
Loading

0 comments on commit 94e81a3

Please sign in to comment.