Graph groups and comments: fit frames them, the band catches them (#95)
1 parent
15f6f33b19
commit
426dbe7195
3 files changed
+14
-4
No files matched your search
+11
-1
@@ -227,6 +227,13 @@ shown on the node and editable in the inspector.
|
||||
touches — nodes are large rectangles, so touching counts, unlike the scene view's test of an
|
||||
object's position. Ctrl/Shift-click adds or removes single nodes, dragging any node of a
|
||||
selection moves all of them, and `Delete` removes all of them — one undo step either way.
|
||||
- **The band catches groups and comments too** (#95), and they end up in the *same* selection as
|
||||
the nodes: one drag then moves all of it, one `Delete` removes all of it, one undo takes it back.
|
||||
A box counts only when the band holds **all** of it, where a node counts on touching alone. That
|
||||
difference is not a mood: a group wraps the nodes it holds, so it overlaps every band drawn over
|
||||
any of them, and since a group drags its nodes along, catching it by accident would be felt at
|
||||
once. A node inside a group that is selected too is still moved **once** — it belongs to both,
|
||||
and the offset is applied to each thing once.
|
||||
- **Dragging an edge tells you where it would land** before you let go: the port it would connect
|
||||
to wears a white ring and the line snaps to it. Dropping on a node's *body* rather than a port
|
||||
takes that node's first free compatible port — or, when none is free, the last compatible one,
|
||||
@@ -291,7 +298,10 @@ shown on the node and editable in the inspector.
|
||||
what it says. Every graph tab has them — behaviors, state machines, shaders, particles.
|
||||
- **Header bar** (the same one the Texture and Container tabs have): the behavior picker,
|
||||
**Fit** (which zooms out far enough to hold every node, measuring each by its own drawn
|
||||
height — `editor/framing.ts`), and the size of the graph as "N nodes · M links".
|
||||
height, **and every group and comment with them** — a fit that framed the nodes alone would cut
|
||||
the box drawn around them, and a graph holding nothing but a comment would frame the empty
|
||||
origin; `editor/framing.ts`), and the size of the graph as "N nodes · M links". It stops zooming
|
||||
out at 0.25, so a box parked far enough away can still lie outside what a fit can show.
|
||||
- **Snap** (header checkbox, off by default): a drag drops each node it carries on the nearest
|
||||
24 px grid line — the same grid the background draws. It takes effect on the next drag only, so
|
||||
switching it on never shuffles a graph that is already laid out, and a node nobody drags never
|
||||
|
||||
+2
-2
@@ -12,7 +12,7 @@ npm run check # typecheck + lint + format:check + tests, the gate CI runs
|
||||
# code is lost (tail's is reported), so a red run reads as green
|
||||
npm run build # writes dist/ and regenerates index.html
|
||||
./build.sh # the same under `set -o pipefail`, for callers that pipe the output
|
||||
node tools/seed-e2e.mjs && node tools/e2e.mjs # 955 editor checks, screenshots in /tmp/gm-e2e-*.png
|
||||
node tools/seed-e2e.mjs && node tools/e2e.mjs # 958 editor checks, screenshots in /tmp/gm-e2e-*.png
|
||||
GM_STEPS=20 node tools/e2e.mjs # or 1-12, or 6,20 — a subset while working on one step
|
||||
./e2e.sh start [GM_STEPS] # the same run detached, see below
|
||||
./e2e.sh status # live progress, or the last run's result
|
||||
@@ -232,4 +232,4 @@ widths to find click points. The **render device is not in this repo** — `/dev
|
||||
and a 1 GB `/dev/shm` come from `container.options` in the runner's own `config.yaml`, which
|
||||
applies to every job on that runner. Without them chromium falls back to llvmpipe, which gets
|
||||
WebGL 1.0 only. Measured in the job container: `ANGLE (Intel, Vulkan 1.3.230, HD Graphics 630)`,
|
||||
WebGL 2.0, and the same 955 checks as here.
|
||||
WebGL 2.0, and the same 958 checks as here.
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
`Ctrl+Z` / `Ctrl+Shift+Z` / `Ctrl+Y` undo/redo (`Cmd` works wherever `Ctrl` does) · `Delete` or
|
||||
`Backspace` remove the selection (objects, nodes, frames, a tile of the Animation tab, a graph group or comment — the box only, its nodes stay; an asset asks first) · `Ctrl+G` create
|
||||
`Backspace` remove the selection (objects, nodes, frames, a tile of the Animation tab, a graph group or comment — the box only, its nodes stay, and a band that caught boxes and nodes together removes both in one step; an asset asks first) · `Ctrl+G` create
|
||||
container from the selection · `Ctrl+Enter` play, and pause/resume while playing · `Esc` stop ·
|
||||
`Ctrl+V` import an image from
|
||||
the clipboard as a texture (ignored while a text field has focus) · `Tab` / `Shift+Tab` cycle fields · lists: `↑`/`↓` move,
|
||||
|
||||
Reference in new issue
Block a user