Show a 3D viewer of stereo positions from the Display selector - #2000
Open
mattdawkins wants to merge 19 commits into
Open
mattdawkins wants to merge 19 commits into
mattdawkins wants to merge 19 commits into
Conversation
Viewer taken from #1348 as resolved on dev/port-ifremer-features.
Stereo pairs get a Display selector: either camera selected, or a camera beside the 3D viewer. The viewer plots midpoint_x/y/z and follows edits.
The 3D pane no longer sizes the layout, so the bottom track list and bars stay put. Adds both cameras plus the 3D viewer as a third pane, and narrows the Display selector.
Detections carrying head_x/y/z and tail_x/y/z attributes are drawn as a body segment with a cone at the head. Axes ignore outlying positions, and the initial view looks on from behind the rig so it reads like the image.
The view opens looking down the depth axis from just behind the rig, on a black background, with the cameras drawn from the calibration and a floor grid marking depth. A button returns to that view; the axes box is optional.
X, Y and Z axes with ticks meet at the grid's near left corner. The selected track takes the selection color on its trail, glyph and label.
A click on a track's glyph or trail selects it everywhere; a press that moves still turns the view.
A click on empty space in the 3D view clears the selection. The stereo Display box is as wide as its label, and the Y axis carries at least three marks. The orientation cube moves to the top left, clear of the axes.
Trails and body segments no longer take clicks, which made stray selections too easy.
Each diagram now ends at its optical center, where depth is measured from, instead of reaching into the scene. The floor grid still starts at depth 0.
The grid and X axis lie in the plane y = 0, with heights marked above and below. The orientation marker shows plain bars, with one arrow for up, and the empty-scene message is gone.
The diagrams open toward the scene again, with the square front at the camera's depth and the tip behind it. The grid goes back under the data.
The box had no minimum width, so a crowded toolbar squeezed it to its label. The 3D view's reset uses the timeline's pan-and-zoom icon, and two corner buttons turn the view left and right.
The 3D viewer's @kitware/vtk.js only resolves with legacy-peer-deps.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stereo (Left),Stereo (Right),Left + 3D,Right + 3D(the viewer takes the unselected camera's pane, which stays mounted),Stereo (Left) + 3D,Stereo (Right) + 3D(both cameras, viewer as a third pane)midpoint_x/y/zdetection attributes stereo measurement already writes; rebuilds a track when it is editedhead_x/y/zandtail_x/y/zare drawn as a body segment with a cone at the head (written by VIAME's measurement processes whenrecord_head_tail_locationsis on)-Rᵀ·T), over a floor grid with labelled X, Y and Z axes; axes and glyph size ignore outlying positions.confcalibration handling🤖 Generated with Claude Code