mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-29 20:48:33 -06:00
The graph now shows the Effective curve and nothing else, as the parametric tab should: the four region handles and three split notches are gone. You grab the line itself, anywhere, and drag it up or down. Which slider moves is decided by where on the line you grabbed — the region whose window that input level falls in — and that slider follows on the same frame, so the line, the handle-free graph and the sliders are one state. The mapping is the renderer's own: a point's curve level against the region's slider is a straight line, so the drag inverts it exactly and the line tracks the hand instead of drifting away from it. The four regions tile the graph, so any grab moves exactly one slider. ⌥ is still a tenth of the motion, ⌥ or not the grab itself moves nothing, and a press away from the line is not a gesture (no value change, no undo step). The whole gesture is still one `develop` interaction, so it is one undo step. Note: `ui.data` stores and loads one type, so the drag state is kept as `Option<(region, x)>` and loaded with `.flatten()` — storing one shape and loading another silently returns `None` every frame, which is what made the first attempt drop the drag after a single frame. Tests rewritten for the line: a drag down and up, which region each quarter of the graph belongs to, the level/amount inverse at off-centre points, the region tiling, hovering naming the region, and one undo step per gesture. Co-Authored-By: deepseek-flash <noreply@deepseek.com>