Adds a matrix type, with some basic transforms, refactors the symmetry code to make use of precalculated transformation matrices and splits it out into a separate source/header file.
The ability to adjust the angle of the symmetry lines is added, allowing for much more flexible use.
This breaks the API in two ways: adding the angle parameter to set_symmetry_state and changing the layout/contents of the MyPaintTiledSurface struct. To my knowledge, no other program than MyPaint makes use of that part of the API, so it shouldn't be an issue.
Adds a matrix type, with some basic transforms, refactors the symmetry code to make use of precalculated transformation matrices and splits it out into a separate source/header file.
The ability to adjust the angle of the symmetry lines is added, allowing for much more flexible use.
This breaks the API in two ways: adding the angle parameter to
set_symmetry_state
and changing the layout/contents of theMyPaintTiledSurface
struct. To my knowledge, no other program than MyPaint makes use of that part of the API, so it shouldn't be an issue.