-
Notifications
You must be signed in to change notification settings - Fork 335
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
More rigorious evaluation of visualizable entities in spatial views using new SpatialTopology
store subscriber
#4836
Conversation
Co-authored-by: Jeremy Leibs <[email protected]>
…alking down the space hierarchy
}; | ||
|
||
// Entities _at_ pinholes are a special case: we display both 3d and 2d visualizers for them. | ||
entities_in_main_3d_space.insert(child_space.origin.clone()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's not change it yet but this continues to make me think these entities should just be in primary_space.entities
in the first place so we don't have to mutate the set.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah we can totally throw the responsibility for this onto the space topology, just need to add a few more unit tests that it does the right thing under updates.
Nice thing is that unlike the old SpaceInfo we know what we're dealing with and who's the "target audience"
What
Introduces a
SpatialTopology
support structure which is built incrementally using a store subscription.It is geared towards replacing the existing
SpaceInfo
(todo!).The first usecase for this is a more rigorous determination of visualizable entities for spatial views: this now allows us to much more accurately reason about what entities are visualizable and how to treat corner cases (/invalid cases) like logged pinhole under a pinhole.
Since this makes the evaluation of visualizable entities / creation of their context a bit more complex in some scenes, this comes with a bit of a perf regression during heuristic eval. However, since the topology changes rarely and deterministically, this also brings a big opportunity for only evaluating the more complex context objects when needed and even sharing them accross different space view (candidates). This is not included in this pr since this comes with the open question of where to store such a secondary cache (likely on topology) and how to flush it (probably best for any new entity or new relevant component).
Checklist
main
build: app.rerun.ionightly
build: app.rerun.io