Repository navigation
Add data cursors and pinned datatips #2
Copy link
Copy link
Open
Labels
area: codeLibrary, viewer or tooling source codeLibrary, viewer or tooling source codecrate: irMostly related to the ironlab-ir figure model crateMostly related to the ironlab-ir figure model cratecrate: sceneMostly related to the ironlab-scene layout and scene compilation crateMostly related to the ironlab-scene layout and scene compilation cratecrate: viewerMostly related to the ironlab-viewer native egui viewer crateMostly related to the ironlab-viewer native egui viewer crateflow: plan-requiredA plan is required before this can progress to ai-readyA plan is required before this can progress to ai-readykind: featureA new capabilityA new capabilitypriority: mediumDo in the normal course of workDo in the normal course of work
Description
Add MATLAB-style data cursors.
- A hover tooltip is viewer state only and is never stored in the IR.
- A pinned datatip is an IR annotation node anchored to
(artist, index)with a pixel offset for its callout, so that it is saved in.figfiles, exported to PDF, creatable from the API and editable like any other node. - Values are formatted with the same tick formatter as the axis they belong to.
- Support both snapping to the nearest vertex and interpolating along a segment; arrow keys step the cursor along the series; a modifier moves the cursor to another series; the pinned callout can be dragged.
- Picking emits an event on the viewer's event queue whose payload holds a set of indices (so that brushing can be added without a protocol change).
The IR additions require a schema review before implementation, as the project rules state. Depends on GPU picking (#1).
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area: codeLibrary, viewer or tooling source codeLibrary, viewer or tooling source codecrate: irMostly related to the ironlab-ir figure model crateMostly related to the ironlab-ir figure model cratecrate: sceneMostly related to the ironlab-scene layout and scene compilation crateMostly related to the ironlab-scene layout and scene compilation cratecrate: viewerMostly related to the ironlab-viewer native egui viewer crateMostly related to the ironlab-viewer native egui viewer crateflow: plan-requiredA plan is required before this can progress to ai-readyA plan is required before this can progress to ai-readykind: featureA new capabilityA new capabilitypriority: mediumDo in the normal course of workDo in the normal course of work
Activity
[-]Add a GPU picking pass[/-][+]Add data cursors and pinned datatips[/+]thclark commentedon Oct 26, 2026
A rudimentary form of datatips for bars, stairs and cells now exists, delivered in the bars and histograms epic (#173). It should be taken into account here, and probably replaced or reworked, so that every artist ends up with consistent datatips.
What exists
BarHit,CellHitandStepHitincrates/ironlab-scene/src/hit.rs). These sit alongside the existing point samples of series and the inverse transforms of images.Tipincrates/ironlab-canvas/src/interaction.rs:Tip::Bar,Tip::StepandTip::Cell. Each has its own callout text infigure_canvas.rs, mirrored in the web outcome.Why it should be revisited
Each artist kind gained its own hit type, its own
Tipvariant and its own callout format, because no common model of what a datatip reports exists yet. The result works, but it repeats the pattern of the pixel and colourbar tips rather than converging on one design. The precedence order between kinds is a fixed list rather than a rule.This issue, together with GPU picking (#1), should define:
Pinned datatips would then be built on that model, and bars, stairs, cells, series and images would move onto it. The category-name lookup and the bin readings from binning records are worth keeping as parts of that model.
This is recorded for planning only; nothing about it is to be changed in #173.