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

EntityProperties archetype prototype #9258

Closed
wants to merge 1 commit into from

Conversation

Wumpf
Copy link
Member

@Wumpf Wumpf commented Mar 11, 2025

As layed out in above ticket, we need to put Interactive and Visible into an entity.

This proposal (once fully propagated) solves everything noted in #9251 and additionally:

  • removes the last hold-out of "recursive overrides", allowing faster & better structured blueprint query handling in the near future
  • exposes the illustrious recursive visibility to users

Drawbacks:

EntityProperties is a pretty poor name since it's overly general and can be confused with everything else that's on an entity. Looking for something better.


For discoverability, the central fbs definition file:

namespace rerun.archetypes;

/// General visualization properties of an entity.
///
/// TODO(#6541): Fields of this archetype currently only have an effect when logged in the blueprint store.
// TODO(#9251): Add example
table EntityProperties (
  "attr.docs.unreleased",
  "attr.docs.category": "General"
) {
    /// Whether the entity can be interacted with.
    ///
    /// Non interactive components may still be still visible, but mouse interactions in the view are disabled.
    ///
    /// Defaults to true.
    interactive: rerun.components.Interactive ("attr.rerun.component_optional", nullable, order: 100);

    /// Whether the entity is visible.
    ///
    /// If this is set, it will take precedence over the `visible_recursive` field
    /// and any `visible_recursive` setting further up in the hierarchy.
    ///
    /// Defaults to true.
    visible: rerun.components.Visible ("attr.rerun.component_optional", nullable, order: 200);

    /// Whether the entity and its children are visible.
    ///
    /// This property is propagated down the entity hierarchy until another child entity
    /// sets `visible_recursive` to a different value at which point propagation continues with that value instead.
    ///
    /// `visible_recursive` is ignored on any individual entity that has the `visible` field set.
    /// (But this does not affect tree propagation of the property)
    ///
    /// Defaults to true.
    // TODO(#6889): Use `Visible` component and rely on field tag instead.
    visible_recursive: rerun.components.VisibleRecursive ("attr.rerun.component_optional", nullable, order: 300);
}

@Wumpf Wumpf added the 🟦 blueprint The data that defines our UI label Mar 11, 2025
Copy link

github-actions bot commented Mar 11, 2025

Web viewer failed to build.

Result Commit Link Manifest
e0f7d39 https://rerun.io/viewer/pr/9258 +nightly +main

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

Copy link

github-actions bot commented Mar 11, 2025

Latest documentation preview deployed successfully.

Result Commit Link
e0f7d39 https://landing-gct1id7ji-rerun.vercel.app/docs

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

@Wumpf
Copy link
Member Author

Wumpf commented Mar 12, 2025

draft review done: proposal got accepted with namechange to EntityBehavior
Will come up with the "real" PR at a later point (hopefully soon!)

@Wumpf Wumpf closed this Mar 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🟦 blueprint The data that defines our UI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant