mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-27 19:27:21 -06:00
Part of #885: the Transform effect's dialog takes Transform Each's controls
Effect › Distort & Transform › Transform… was a plain list of fields. It now has Transform Each's layout: Scale and Move with sliders, Rotate with an angle dial, then Copies, Reflect X and Y, the reference point and Random, kept with the effect so editing it from the Appearance panel shows them again. - The effect scales, rotates and reflects about the chosen point of the 9-point grid (`reference`, the centre by default). - Random takes a share of each value, drawn from the object's id: each object varies its own way and keeps its result on every redraw; a group's members move together. - Copies stop before one reaches past 1e9 pt, and the scale and move are capped, so large values can't overflow. - Transform Each and the effect share the sections and options code; the angle dial is a new widget. - A plain number field now takes the focus when it is a dialog's first field, so both dialogs open with Scale › Horizontal ready for typing. Transform Objects, Transform Patterns and Scale Strokes & Effects are not in the effect yet: the geometry effects reshape paths only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
da73a46137
commit
20e5a746bd
@@ -130,6 +130,9 @@ effects) prefilled with its values, and `ui.dialog.confirm` runs `effect.setPara
|
||||
`effect.apply`. Choosing an effect that the list already has returns `{"pending": "effectExists"}` and opens the
|
||||
`effectExists` question: `ui.dialog.confirm` opens the applied effect's dialog, `ui.dialog.set {field: "discard",
|
||||
value: true}` then confirm opens a fresh one that adds another, `ui.dialog.cancel` drops it.
|
||||
The Transform effect's dialog (`effect.dialog {effect: "distort.transform"}`) has Transform Each's controls: sliders
|
||||
for `scaleH`, `scaleV` (%) and `moveH`, `moveV` (pt), an angle dial for `rotate`, then `copies`, `reflectX`,
|
||||
`reflectY`, `reference` (0–8, the 9-point grid) and `random` (each object varies its own way, the same on every redraw).
|
||||
|
||||
Plug-in dialogs: `engine.execute {command: "plugin.dialog", params: {id}}` (Object › Plug-ins) runs an object filter
|
||||
plug-in at once when it takes no parameters, else opens the `plugin` dialog: one field per declared parameter (named
|
||||
|
||||
Reference in New Issue
Block a user