Fix TransformAxes3D blanking the whole 3D view when one frame is unresolvable - #12826
Fix TransformAxes3D blanking the whole 3D view when one frame is unresolvable#12826lsy3 wants to merge 4 commits into
TransformAxes3D blanking the whole 3D view when one frame is unresolvable#12826Conversation
…resolvable
`TransformAxes3DVisualizer::execute` iterates entities and, for each, builds
`transforms_to_draw`. Its "nothing to draw" early-exit used `return` instead of
`continue`:
if transforms_to_draw.is_empty() {
return Ok(output);
}
Because this is inside the per-entity loop, the first entity that has nothing to
draw — e.g. one whose transform frame can't be resolved to the view's target
frame (a disconnected transform sub-tree) — exits the entire visualizer. Every
other entity's axes are dropped, and the `line_builder` draw data (attached only
after the loop) is never emitted, so a 3D view whose content is transform axes
goes fully blank as soon as a single frame is unresolvable.
Use `continue` to skip just that entity, matching the `axis_length == 0.0`
early-skip a few lines below.
|
Heads up — CI's
Could a maintainer add those when you get a chance? Thanks! |
Wumpf
left a comment
There was a problem hiding this comment.
Missed this since it was drafted. But still look relevant actually. And correct!
|
@rerun-bot reality-sync |
|
Sync complete. Mirror PR in reality: https://github.com/rerun-io/reality/pull/3121 Triggered by @Wumpf |
|
Fixed the indentation introduced when applying the suggestion. Ready for resync/merge. |
|
ah thx, forgot about it again 🤦 |
|
✅ Landed via sync commit The corresponding reality PR was merged: https://github.com/rerun-io/reality/pull/3121 This PR's changes are included in 7c76d0d. This PR could not be auto-merged directly because: simulated squash merge tree doesn't match expected sync commit Closing this PR because the changes have landed. |
Related
What
TransformAxes3DVisualizer::executeloops over entities and, for each, buildstransforms_to_draw. Its "nothing to draw" early-exit usedreturninstead ofcontinue:Because this is inside the per-entity loop, the first entity that has nothing to draw — e.g. one whose transform frame can't be resolved to the view's target frame (a disconnected transform sub-tree; cf. #12530) — exits the whole visualizer. Every other entity's axes are dropped, and the
line_builderdraw data (attached only after the loop) is never emitted. So a 3D view whose content is transform axes goes fully blank as soon as a single frame is unresolvable, instead of just omitting that one frame's axes.The fix is
return→continue, skipping just the unresolvable entity — matching theaxis_length == 0.0early-skip a few lines below which already usescontinue.First contribution to rerun — happy to iterate on style or scope if I missed a convention.