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

Allow linking of GraphNodes across different entities #8162

Open
grtlr opened this issue Nov 15, 2024 · 0 comments
Open

Allow linking of GraphNodes across different entities #8162

grtlr opened this issue Nov 15, 2024 · 0 comments
Labels
🔩 data model enhancement New feature or request feat-graph-view Everything related to the graph view ui concerns graphical user interface

Comments

@grtlr
Copy link
Contributor

grtlr commented Nov 15, 2024

Is your feature request related to a problem? Please describe.

Right now the graph view is limited to per-entity layouts. There is also no way to reference nodes from different entities, nor entities by themselves.

By introducing cross-entity edges, we could also start to implement hierarchical graphs.

Describe the solution you'd like

It would be awesome, if entities could be treated as both:

  • first class nodes (i.e. be the source and target of an edge)
  • a (visual) group that contains child nodes that can be referenced globally

The simplest solution for this is to encode this information directly in the strings of the GraphEdge component (GraphNode could stay untouched).

The string could have the following interpretations:

  • /<entity> prefix: An entity will be treated as a node (can be the source / target of an edge itself).
  • /<entity> prefix + #<node_id> suffix: refers to a GraphNode
  • all other strings: a node that lives in the same entity that this string was logged to (current behavior).

Describe alternatives you've considered

Alternative options would be:

  • Having more complex types in the .fbs definitions

Open questions

  • How to allow styling of entities (they don't have an associated GraphNode archetype)?

Examples

Entity-to-entity:

rr.log(`edges`, GraphEdges::new(&[("/torso", "/left_arm")]));

Node-to-node (across entities):

rr.log(`edges`, GraphEdges::new(&[("/group1#a", "/group2#b")]));
@grtlr grtlr added enhancement New feature or request feat-graph-view Everything related to the graph view labels Nov 15, 2024
@grtlr grtlr assigned grtlr and unassigned grtlr Nov 15, 2024
@grtlr grtlr added 🔩 data model ui concerns graphical user interface labels Dec 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🔩 data model enhancement New feature or request feat-graph-view Everything related to the graph view ui concerns graphical user interface
Projects
None yet
Development

No branches or pull requests

1 participant