Skip to content

Blueprint: Query Expressions (backend support) #4128

@jleibs

Description

@jleibs

Motivation

Our minimal experimental blueprint APIs allow you to explicitly list specific entities to add to a space-view, but this can be quite cumbersome with large scenes. We would like to be able to add an entire sub-tree (or other complex expression) through a single API call.

Approach

Because the Blueprint needs to be set before logging data, there is no way to do this with a mechanism such as a log-time query that resolves to a collection of entity-paths. It must be stored in the blueprint representation as a query which is evaluated at runtime.

Rather than the SpaceViewContents structure used today, which explicitly stores all of the entities within a scene, we will introduce a new "Data Query" concept which evaluates the parts that will be shown in the the space-view at runtime.

Sub-tasks

  • Implement DataQuery trait and wrap SpaceViewContents for backwards compatibility.
  • Refactor SpaceView to consume DataResultTree.
  • Replace DataBlueprintGroup with new Property override system that works on DataResultTree.
  • Refactor BlueprintTree to consume DataResultTree.
  • New DataQuery implementation to produce DataResultTree from wild-card
  • MVP Blueprint API for adding DataQuery to the blueprint.

Follow-up tasks:

Metadata

Metadata

Assignees

Labels

🟦 blueprintThe data that defines our UI

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions