While this type of thing might seem pretty basic, since we’re so used to these tools in modern design software, just clicking and dragging to transform or rotate things is actually quite complex. The basics of applying just one transformation to one element is pretty straight-forward, but it quickly becomes trickier when the elements you’re modifying are inside groups that are themself offset, rotated or scaled. And it becomes even trickier since Paragraphic has further restrictions based on the transforms needing to be applied non-destructively via layer parameters that could potentially be calculated automatically.
I’ve resigned to the fact that there will be some (or many) edge cases where this will result in elements not behaving exactly as expected when dragging handles. And I think this will be acceptable when complex transformations or relationships are applied. But at least I’ve now set up handle-based resizing, scaling and rotating that works in most common basic cases.
I’ve also reworked the layer pivot functionality, defining the point layer rotations and scaling will be based around, to allow non-center based transformations and better handling of group pivots when moving around elements in the group. For now I’ve opted for a fixed pivot point per layer, which is a little inconsistent since it will apply to all transformations of the layer output but simplifies a lot of transformations. We’ll see with further testing if this will work or if I’ll need to implement a more robust pivot change transform system.
Finally I’ve also implemented using these new transform handles for editing repeater node offset parameters. Currently implemented as a separate tool you can use to access the handles for these. This will probably be expanded later to include such drag handles for more node transform parameters, but it’s a good start.
Additional improvements
UI/UX
- Improved value fields, fixing some expression parsing issues and adding support for reverting edits by hitting esc in fields while editing the value.
- Improved selection outlines highlights to track what elements you affect when modifying layer nodes and highlight the outline of these elements as you edit them.
Import/Export
- Implemented copy SVG export, allowing you to quickly copy selected layers as SVG so you can paste it into other software.
- New version compare code for file loading (and later version checking).