pin deps/plotter: per-column x axes, tighter cell gap; docs
This commit is contained in:
1 parent
03cb85e015
commit
0c228c4822
5 files changed
+26
-10
No files matched your search
@@ -279,8 +279,12 @@ number of *figure rows* (the host's `RowSet::row_count()` is the plot count, `fi
|
||||
rows). `plot(i)`, `link_x()` and the crosshair's hovered index all take the **flattened** plot index.
|
||||
Cell widths use the height scheme: a floor of **64 px logical** per cell, the weights share the rest,
|
||||
the last cell closes the row exactly, and a figure too narrow for the floors shrinks the cells
|
||||
proportionally and drops the column gap. Only the bottom row's cells carry x labels and the x title
|
||||
(every other plot gets `XStrip::None`), and the left y gutter stays one maximum over the whole figure.
|
||||
proportionally and drops the column gap. The x labels and title follow the **column structure**: a row
|
||||
hides its x strip (`XStrip::None`) only when the row directly below has the *same columns* (same cell
|
||||
count, same normalised cell weights within 1e-4, empty weights = equal), so `[1][2]/[3][4]` has an axis
|
||||
under 3 and 4 only while `[1][2]/[3]` has one under 1, 2 and 3; the rule is structural, transitive down a
|
||||
chain and decided before the measurement pass (`same_columns()` in `figure.cpp`); `set_x_labels_only_on_bottom(false)`
|
||||
labels every row. The left y gutter stays one maximum over the whole figure.
|
||||
|
||||
The cells of a figure row can **share one y range**, symmetric to the x link
|
||||
(`docs/superpowers/specs/2026-11-03-split-shared-y-design.md`):
|
||||
@@ -303,6 +307,11 @@ The cells of a figure row can **share one y range**, symmetric to the x link
|
||||
share the rest by the existing `floor + extra * w / total` rule, the floors applying to plot widths.
|
||||
Equal weights give equal plot areas; the first cell's rect is gutter plus its plot width and the rects
|
||||
still tile the row exactly.
|
||||
- **The right gutter belongs to the last cell.** In a shared-y split row only the last cell gets
|
||||
`set_right_gutter()`; it is taken off the row beside the y gutter (capped so both fit in half the row
|
||||
and never beyond the figure's right gutter) and the last cell's rect grows right by it. The gap between
|
||||
two plot frames is then exactly `col_gap` rather than `col_gap` plus a gutter; unsplit rows and rows
|
||||
with sharing off lay out as before (`figure_split_row_gap_*`, `figure_row_gutter_without_sharing_is_the_old_layout`).
|
||||
|
||||
In the GTK4 and GLFW adapters the pointer is routed by **cell rect** (`row_in(rows, x, y)`: the
|
||||
containing cell, else the nearest by squared distance), one `input::Controller` per plot. The tests are
|
||||
|
||||
Reference in new issue
Block a user