Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor convoluted ViewportBlueprint logic #8241

Merged
merged 30 commits into from
Nov 29, 2024

Conversation

emilk
Copy link
Member

@emilk emilk commented Nov 28, 2024

Related

What

This refactors Viewport (now called ViewportUi) and ViewportBlueprint to much simpler.

  • The tree is no longer duplicated in ViewportUi
  • TreeAction is now called ViewportCommand
  • All mutation are now accumulated in an Arc<Mutex<Vec<ViewportCommand>>>
  • All mutations are applied at the end of the frame, and then stored to blueprint store
  • Removed unused component IncludedSpaceView
  • A lot of cleanup

@emilk emilk added 📺 re_viewer affects re_viewer itself 🚜 refactor Change the code, not the functionality exclude from changelog PRs with this won't show up in CHANGELOG.md labels Nov 28, 2024
Copy link

github-actions bot commented Nov 28, 2024

Web viewer built successfully. If applicable, you should also test it:

  • I have tested the web viewer
Result Commit Link
86cbfaa https://rerun.io/viewer/pr/8241

Note: This comment is updated whenever you push a commit.

@emilk emilk changed the title Change channel to an Arc<Mutex<Vec<_>>> Refactor convoluted ViewportBlueprint logic Nov 28, 2024
@emilk emilk marked this pull request as ready for review November 28, 2024 11:50
@Wumpf Wumpf self-requested a review November 28, 2024 12:22
Copy link
Member

@Wumpf Wumpf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

beautiful!

@emilk emilk merged commit d6aebd6 into main Nov 29, 2024
37 checks passed
@emilk emilk deleted the emilk/refactor-viewport-blueprint branch November 29, 2024 08:26
@emilk emilk mentioned this pull request Nov 29, 2024
6 tasks
emilk added a commit that referenced this pull request Dec 2, 2024
* Fixed bug introduced in #8241

Before we would be left with empty containers.
emilk added a commit that referenced this pull request Dec 2, 2024
### What
* Closes #3135
* Proceeded by #7602
* Proceeded by #7603
* Proceeded by #8241
* New issue: #8249

This PR implements Undo and Redo for any edit to the active blueprint.


https://github.com/user-attachments/assets/05018729-f01e-42f4-a84f-b48dbf31b060

### Implementation
This implements undo/redo by editing the "time cursor" for the blueprint
timeline. Undo moves it backwards, redo forwards. When doing an action,
all redo history is erased from the store with a new
`ChunkStore::drop_time_range` function.

### Known shortcomings
* Undo doesn't work when the blueprint streams panel is open

### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/7546?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/7546?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!
* [x] If have noted any breaking changes to the log API in
`CHANGELOG.md` and the migration guide

- [PR Build Summary](https://build.rerun.io/pr/7546)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.

---------

Co-authored-by: Clement Rey <cr.rey.clement@gmail.com>
emilk added a commit that referenced this pull request Dec 2, 2024
* Fixed bug introduced in #8241

Before we would be left with empty containers.
emilk added a commit that referenced this pull request Dec 2, 2024
### Related
* Fixed bug introduced in #8241


### What

Before we would be left with empty containers.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
exclude from changelog PRs with this won't show up in CHANGELOG.md 📺 re_viewer affects re_viewer itself 🚜 refactor Change the code, not the functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Refactor viewport blueprint logic Marking of edited for the blueprint is error prone
2 participants