Trait rerun::external::re_viewer_context::ViewClass

source ·
pub trait ViewClass: Send + Sync {
Show 18 methods // Required methods fn identifier() -> ViewClassIdentifier where Self: Sized; fn display_name(&self) -> &'static str; fn help_markdown(&self, egui_ctx: &Context) -> String; fn on_register( &self, system_registry: &mut ViewSystemRegistrator<'_>, ) -> Result<(), ViewClassRegistryError>; fn new_state(&self) -> Box<dyn ViewState>; fn layout_priority(&self) -> ViewClassLayoutPriority; fn spawn_heuristics(&self, ctx: &ViewerContext<'_>) -> ViewSpawnHeuristics; fn ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), query: &ViewQuery<'_>, system_output: SystemExecutionOutput, ) -> Result<(), ViewSystemExecutionError>; // Provided methods fn icon(&self) -> &'static Icon { ... } fn blueprint_archetype(&self) -> Option<Vec<ComponentName>> { ... } fn preferred_tile_aspect_ratio( &self, _state: &(dyn ViewState + 'static), ) -> Option<f32> { ... } fn supports_visible_time_range(&self) -> bool { ... } fn default_query_range( &self, _state: &(dyn ViewState + 'static), ) -> QueryRange { ... } fn recommended_root_for_entities( &self, _entities: &HashSet<EntityPath, BuildHasherDefault<NoHashHasher<EntityPath>>>, _entity_db: &EntityDb, ) -> Option<EntityPath> { ... } fn visualizable_filter_context( &self, _space_origin: &EntityPath, _entity_db: &EntityDb, ) -> Box<dyn VisualizableFilterContext> { ... } fn choose_default_visualizers( &self, entity_path: &EntityPath, _applicable_entities_per_visualizer: &PerVisualizer<ApplicableEntities>, visualizable_entities_per_visualizer: &PerVisualizer<VisualizableEntities>, indicated_entities_per_visualizer: &PerVisualizer<IndicatedEntities>, ) -> SmallVec<[ViewSystemIdentifier; 4]> { ... } fn selection_ui( &self, _ctx: &ViewerContext<'_>, _ui: &mut Ui, _state: &mut (dyn ViewState + 'static), _space_origin: &EntityPath, _view_id: BlueprintId<ViewIdRegistry>, ) -> Result<(), ViewSystemExecutionError> { ... } fn extra_title_bar_ui( &self, _ctx: &ViewerContext<'_>, _ui: &mut Ui, _state: &mut (dyn ViewState + 'static), _space_origin: &EntityPath, _view_id: BlueprintId<ViewIdRegistry>, ) -> Result<(), ViewSystemExecutionError> { ... }
}
Expand description

Defines a class of view without any concrete types making it suitable for storage and interfacing.

Each View in the viewer’s viewport has a single class assigned immutable at its creation time. The class defines all aspects of its behavior. It determines which entities are queried, how they are rendered, and how the user can interact with them.

Required Methods§

source

fn identifier() -> ViewClassIdentifier
where Self: Sized,

Identifier string of this view class.

By convention we use PascalCase.

source

fn display_name(&self) -> &'static str

User-facing name of this view class.

Used for UI display.

source

fn help_markdown(&self, egui_ctx: &Context) -> String

Help text describing how to interact with this view in the ui.

source

fn on_register( &self, system_registry: &mut ViewSystemRegistrator<'_>, ) -> Result<(), ViewClassRegistryError>

Called once upon registration of the class

This can be used to register all built-in crate::ViewContextSystem and crate::VisualizerSystem.

source

fn new_state(&self) -> Box<dyn ViewState>

Called once for every new view instance of this class.

The state is not persisted across viewer sessions, only shared frame-to-frame.

source

fn layout_priority(&self) -> ViewClassLayoutPriority

Controls how likely this view will get a large tile in the ui.

source

fn spawn_heuristics(&self, ctx: &ViewerContext<'_>) -> ViewSpawnHeuristics

Determines which views should be spawned by default for this class.

source

fn ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), query: &ViewQuery<'_>, system_output: SystemExecutionOutput, ) -> Result<(), ViewSystemExecutionError>

Draws the ui for this view class and handles ui events.

The passed state is kept frame-to-frame.

TODO(wumpf): Right now the ui methods control when and how to create re_renderer::ViewBuilders. In the future, we likely want to move view builder handling to re_viewport with minimal configuration options exposed via crate::ViewClass.

Provided Methods§

source

fn icon(&self) -> &'static Icon

Icon used to identify this view class.

source

fn blueprint_archetype(&self) -> Option<Vec<ComponentName>>

Optional archetype of the View’s blueprint properties.

Blueprint components that only apply to the view itself, not to the entities it displays.

source

fn preferred_tile_aspect_ratio( &self, _state: &(dyn ViewState + 'static), ) -> Option<f32>

Preferred aspect ratio for the ui tiles of this view.

source

fn supports_visible_time_range(&self) -> bool

Controls whether the visible time range UI should be displayed for this view.

source

fn default_query_range(&self, _state: &(dyn ViewState + 'static)) -> QueryRange

Default query range for this view.

source

fn recommended_root_for_entities( &self, _entities: &HashSet<EntityPath, BuildHasherDefault<NoHashHasher<EntityPath>>>, _entity_db: &EntityDb, ) -> Option<EntityPath>

Determines a suitable origin given the provided set of entities.

This function only considers the transform topology, disregarding the actual visualizability of the entities (for this, use Self::visualizable_filter_context).

source

fn visualizable_filter_context( &self, _space_origin: &EntityPath, _entity_db: &EntityDb, ) -> Box<dyn VisualizableFilterContext>

Create context object that is passed to all of this classes visualizers to determine whether they can be visualized

See crate::VisualizerSystem::filter_visualizable_entities.

source

fn choose_default_visualizers( &self, entity_path: &EntityPath, _applicable_entities_per_visualizer: &PerVisualizer<ApplicableEntities>, visualizable_entities_per_visualizer: &PerVisualizer<VisualizableEntities>, indicated_entities_per_visualizer: &PerVisualizer<IndicatedEntities>, ) -> SmallVec<[ViewSystemIdentifier; 4]>

Choose the default visualizers to enable for this entity.

Helpful for customizing fallback behavior for types that are insufficient to determine indicated on their own.

Will only be called for entities where the selected visualizers have not been overridden by the blueprint.

This interface provides a default implementation which will return all visualizers which are both visualizable and indicated for the given entity.

source

fn selection_ui( &self, _ctx: &ViewerContext<'_>, _ui: &mut Ui, _state: &mut (dyn ViewState + 'static), _space_origin: &EntityPath, _view_id: BlueprintId<ViewIdRegistry>, ) -> Result<(), ViewSystemExecutionError>

Ui shown when the user selects a view of this class.

source

fn extra_title_bar_ui( &self, _ctx: &ViewerContext<'_>, _ui: &mut Ui, _state: &mut (dyn ViewState + 'static), _space_origin: &EntityPath, _view_id: BlueprintId<ViewIdRegistry>, ) -> Result<(), ViewSystemExecutionError>

Additional UI displayed in the tab title bar, between the “maximize” and “help” buttons.

Note: this is a right-to-left layout.

Trait Implementations§

source§

impl<'a> ViewClassExt<'a> for dyn ViewClass + 'a

source§

fn determine_visualizable_entities( &self, applicable_entities_per_visualizer: &PerVisualizer<ApplicableEntities>, entity_db: &EntityDb, visualizers: &VisualizerCollection, space_origin: &EntityPath, ) -> PerVisualizer<VisualizableEntities>

Determines the set of visible entities for a given view.

Implementations on Foreign Types§

source§

impl ViewClass for BarChartView

source§

fn identifier() -> ViewClassIdentifier

source§

fn display_name(&self) -> &'static str

source§

fn icon(&self) -> &'static Icon

source§

fn new_state(&self) -> Box<dyn ViewState>

source§

fn help_markdown(&self, egui_ctx: &Context) -> String

source§

fn on_register( &self, system_registry: &mut ViewSystemRegistrator<'_>, ) -> Result<(), ViewClassRegistryError>

source§

fn preferred_tile_aspect_ratio( &self, _state: &(dyn ViewState + 'static), ) -> Option<f32>

source§

fn choose_default_visualizers( &self, entity_path: &EntityPath, _applicable_entities_per_visualizer: &PerVisualizer<ApplicableEntities>, visualizable_entities_per_visualizer: &PerVisualizer<VisualizableEntities>, _indicated_entities_per_visualizer: &PerVisualizer<IndicatedEntities>, ) -> SmallVec<[ViewSystemIdentifier; 4]>

source§

fn spawn_heuristics(&self, ctx: &ViewerContext<'_>) -> ViewSpawnHeuristics

source§

fn layout_priority(&self) -> ViewClassLayoutPriority

source§

fn selection_ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), _space_origin: &EntityPath, view_id: BlueprintId<ViewIdRegistry>, ) -> Result<(), ViewSystemExecutionError>

source§

fn ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), query: &ViewQuery<'_>, system_output: SystemExecutionOutput, ) -> Result<(), ViewSystemExecutionError>

source§

impl ViewClass for DataframeView

source§

fn identifier() -> ViewClassIdentifier

source§

fn display_name(&self) -> &'static str

source§

fn icon(&self) -> &'static Icon

source§

fn help_markdown(&self, _egui_ctx: &Context) -> String

source§

fn on_register( &self, system_registry: &mut ViewSystemRegistrator<'_>, ) -> Result<(), ViewClassRegistryError>

source§

fn new_state(&self) -> Box<dyn ViewState>

source§

fn preferred_tile_aspect_ratio( &self, _state: &(dyn ViewState + 'static), ) -> Option<f32>

source§

fn layout_priority(&self) -> ViewClassLayoutPriority

source§

fn spawn_heuristics(&self, _ctx: &ViewerContext<'_>) -> ViewSpawnHeuristics

source§

fn selection_ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), _space_origin: &EntityPath, view_id: BlueprintId<ViewIdRegistry>, ) -> Result<(), ViewSystemExecutionError>

source§

fn ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), query: &ViewQuery<'_>, _system_output: SystemExecutionOutput, ) -> Result<(), ViewSystemExecutionError>

source§

impl ViewClass for GraphView

source§

fn on_register( &self, system_registry: &mut ViewSystemRegistrator<'_>, ) -> Result<(), ViewClassRegistryError>

Register all systems (contexts & parts) that the view needs.

source§

fn selection_ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), _space_origin: &EntityPath, view_id: BlueprintId<ViewIdRegistry>, ) -> Result<(), ViewSystemExecutionError>

Additional UI displayed when the view is selected.

In this sample we show a combo box to select the color coordinates mode.

source§

fn ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), query: &ViewQuery<'_>, system_output: SystemExecutionOutput, ) -> Result<(), ViewSystemExecutionError>

The contents of the View window and all interaction within it.

This is called with freshly created & executed context & part systems.

source§

fn identifier() -> ViewClassIdentifier

source§

fn display_name(&self) -> &'static str

source§

fn icon(&self) -> &'static Icon

source§

fn help_markdown(&self, egui_ctx: &Context) -> String

source§

fn new_state(&self) -> Box<dyn ViewState>

source§

fn preferred_tile_aspect_ratio( &self, state: &(dyn ViewState + 'static), ) -> Option<f32>

source§

fn layout_priority(&self) -> ViewClassLayoutPriority

source§

fn spawn_heuristics(&self, ctx: &ViewerContext<'_>) -> ViewSpawnHeuristics

source§

impl ViewClass for MapView

source§

fn identifier() -> ViewClassIdentifier

source§

fn display_name(&self) -> &'static str

source§

fn icon(&self) -> &'static Icon

source§

fn help_markdown(&self, _egui_ctx: &Context) -> String

source§

fn on_register( &self, system_registry: &mut ViewSystemRegistrator<'_>, ) -> Result<(), ViewClassRegistryError>

source§

fn new_state(&self) -> Box<dyn ViewState>

source§

fn preferred_tile_aspect_ratio( &self, _state: &(dyn ViewState + 'static), ) -> Option<f32>

source§

fn layout_priority(&self) -> ViewClassLayoutPriority

source§

fn supports_visible_time_range(&self) -> bool

source§

fn spawn_heuristics(&self, ctx: &ViewerContext<'_>) -> ViewSpawnHeuristics

source§

fn selection_ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), _space_origin: &EntityPath, view_id: BlueprintId<ViewIdRegistry>, ) -> Result<(), ViewSystemExecutionError>

source§

fn ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), query: &ViewQuery<'_>, system_output: SystemExecutionOutput, ) -> Result<(), ViewSystemExecutionError>

source§

impl ViewClass for SpatialView2D

source§

fn identifier() -> ViewClassIdentifier

source§

fn display_name(&self) -> &'static str

source§

fn icon(&self) -> &'static Icon

source§

fn help_markdown(&self, egui_ctx: &Context) -> String

source§

fn on_register( &self, system_registry: &mut ViewSystemRegistrator<'_>, ) -> Result<(), ViewClassRegistryError>

source§

fn new_state(&self) -> Box<dyn ViewState>

source§

fn preferred_tile_aspect_ratio( &self, state: &(dyn ViewState + 'static), ) -> Option<f32>

source§

fn supports_visible_time_range(&self) -> bool

source§

fn layout_priority(&self) -> ViewClassLayoutPriority

source§

fn recommended_root_for_entities( &self, entities: &HashSet<EntityPath, BuildHasherDefault<NoHashHasher<EntityPath>>>, entity_db: &EntityDb, ) -> Option<EntityPath>

source§

fn visualizable_filter_context( &self, space_origin: &EntityPath, entity_db: &EntityDb, ) -> Box<dyn VisualizableFilterContext>

source§

fn spawn_heuristics(&self, ctx: &ViewerContext<'_>) -> ViewSpawnHeuristics

source§

fn selection_ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), _space_origin: &EntityPath, view_id: BlueprintId<ViewIdRegistry>, ) -> Result<(), ViewSystemExecutionError>

source§

fn ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), query: &ViewQuery<'_>, system_output: SystemExecutionOutput, ) -> Result<(), ViewSystemExecutionError>

source§

impl ViewClass for SpatialView3D

source§

fn choose_default_visualizers( &self, entity_path: &EntityPath, applicable_entities_per_visualizer: &PerVisualizer<ApplicableEntities>, visualizable_entities_per_visualizer: &PerVisualizer<VisualizableEntities>, indicated_entities_per_visualizer: &PerVisualizer<IndicatedEntities>, ) -> SmallVec<[ViewSystemIdentifier; 4]>

Choose the default visualizers to enable for this entity.

source§

fn identifier() -> ViewClassIdentifier

source§

fn display_name(&self) -> &'static str

source§

fn icon(&self) -> &'static Icon

source§

fn help_markdown(&self, egui_ctx: &Context) -> String

source§

fn new_state(&self) -> Box<dyn ViewState>

source§

fn on_register( &self, system_registry: &mut ViewSystemRegistrator<'_>, ) -> Result<(), ViewClassRegistryError>

source§

fn preferred_tile_aspect_ratio( &self, _state: &(dyn ViewState + 'static), ) -> Option<f32>

source§

fn supports_visible_time_range(&self) -> bool

source§

fn layout_priority(&self) -> ViewClassLayoutPriority

source§

fn recommended_root_for_entities( &self, entities: &HashSet<EntityPath, BuildHasherDefault<NoHashHasher<EntityPath>>>, entity_db: &EntityDb, ) -> Option<EntityPath>

source§

fn visualizable_filter_context( &self, space_origin: &EntityPath, entity_db: &EntityDb, ) -> Box<dyn VisualizableFilterContext>

source§

fn spawn_heuristics(&self, ctx: &ViewerContext<'_>) -> ViewSpawnHeuristics

source§

fn selection_ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), space_origin: &EntityPath, view_id: BlueprintId<ViewIdRegistry>, ) -> Result<(), ViewSystemExecutionError>

source§

fn ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), query: &ViewQuery<'_>, system_output: SystemExecutionOutput, ) -> Result<(), ViewSystemExecutionError>

source§

impl ViewClass for TensorView

source§

fn identifier() -> ViewClassIdentifier

source§

fn display_name(&self) -> &'static str

source§

fn icon(&self) -> &'static Icon

source§

fn help_markdown(&self, _egui_ctx: &Context) -> String

source§

fn on_register( &self, system_registry: &mut ViewSystemRegistrator<'_>, ) -> Result<(), ViewClassRegistryError>

source§

fn preferred_tile_aspect_ratio( &self, _state: &(dyn ViewState + 'static), ) -> Option<f32>

source§

fn layout_priority(&self) -> ViewClassLayoutPriority

source§

fn new_state(&self) -> Box<dyn ViewState>

source§

fn choose_default_visualizers( &self, entity_path: &EntityPath, _applicable_entities_per_visualizer: &PerVisualizer<ApplicableEntities>, visualizable_entities_per_visualizer: &PerVisualizer<VisualizableEntities>, _indicated_entities_per_visualizer: &PerVisualizer<IndicatedEntities>, ) -> SmallVec<[ViewSystemIdentifier; 4]>

source§

fn selection_ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), _space_origin: &EntityPath, view_id: BlueprintId<ViewIdRegistry>, ) -> Result<(), ViewSystemExecutionError>

source§

fn spawn_heuristics(&self, ctx: &ViewerContext<'_>) -> ViewSpawnHeuristics

source§

fn ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), query: &ViewQuery<'_>, system_output: SystemExecutionOutput, ) -> Result<(), ViewSystemExecutionError>

source§

impl ViewClass for TextDocumentView

source§

fn identifier() -> ViewClassIdentifier

source§

fn display_name(&self) -> &'static str

source§

fn icon(&self) -> &'static Icon

source§

fn help_markdown(&self, _egui_ctx: &Context) -> String

source§

fn on_register( &self, system_registry: &mut ViewSystemRegistrator<'_>, ) -> Result<(), ViewClassRegistryError>

source§

fn new_state(&self) -> Box<dyn ViewState>

source§

fn layout_priority(&self) -> ViewClassLayoutPriority

source§

fn selection_ui( &self, _ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), _space_origin: &EntityPath, _view_id: BlueprintId<ViewIdRegistry>, ) -> Result<(), ViewSystemExecutionError>

source§

fn spawn_heuristics(&self, ctx: &ViewerContext<'_>) -> ViewSpawnHeuristics

source§

fn ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), query: &ViewQuery<'_>, system_output: SystemExecutionOutput, ) -> Result<(), ViewSystemExecutionError>

source§

impl ViewClass for TextView

source§

fn identifier() -> ViewClassIdentifier

source§

fn display_name(&self) -> &'static str

source§

fn icon(&self) -> &'static Icon

source§

fn help_markdown(&self, _egui_ctx: &Context) -> String

source§

fn on_register( &self, system_registry: &mut ViewSystemRegistrator<'_>, ) -> Result<(), ViewClassRegistryError>

source§

fn new_state(&self) -> Box<dyn ViewState>

source§

fn preferred_tile_aspect_ratio( &self, _state: &(dyn ViewState + 'static), ) -> Option<f32>

source§

fn layout_priority(&self) -> ViewClassLayoutPriority

source§

fn spawn_heuristics(&self, ctx: &ViewerContext<'_>) -> ViewSpawnHeuristics

source§

fn selection_ui( &self, _ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), _space_origin: &EntityPath, _view_id: BlueprintId<ViewIdRegistry>, ) -> Result<(), ViewSystemExecutionError>

source§

fn ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), _query: &ViewQuery<'_>, system_output: SystemExecutionOutput, ) -> Result<(), ViewSystemExecutionError>

source§

impl ViewClass for TimeSeriesView

source§

fn choose_default_visualizers( &self, entity_path: &EntityPath, _applicable_entities_per_visualizer: &PerVisualizer<ApplicableEntities>, visualizable_entities_per_visualizer: &PerVisualizer<VisualizableEntities>, indicated_entities_per_visualizer: &PerVisualizer<IndicatedEntities>, ) -> SmallVec<[ViewSystemIdentifier; 4]>

Choose the default visualizers to enable for this entity.

source§

fn identifier() -> ViewClassIdentifier

source§

fn display_name(&self) -> &'static str

source§

fn icon(&self) -> &'static Icon

source§

fn help_markdown(&self, egui_ctx: &Context) -> String

source§

fn on_register( &self, system_registry: &mut ViewSystemRegistrator<'_>, ) -> Result<(), ViewClassRegistryError>

source§

fn new_state(&self) -> Box<dyn ViewState>

source§

fn preferred_tile_aspect_ratio( &self, _state: &(dyn ViewState + 'static), ) -> Option<f32>

source§

fn layout_priority(&self) -> ViewClassLayoutPriority

source§

fn supports_visible_time_range(&self) -> bool

source§

fn default_query_range( &self, _view_state: &(dyn ViewState + 'static), ) -> QueryRange

source§

fn selection_ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), _space_origin: &EntityPath, view_id: BlueprintId<ViewIdRegistry>, ) -> Result<(), ViewSystemExecutionError>

source§

fn spawn_heuristics(&self, ctx: &ViewerContext<'_>) -> ViewSpawnHeuristics

source§

fn ui( &self, ctx: &ViewerContext<'_>, ui: &mut Ui, state: &mut (dyn ViewState + 'static), query: &ViewQuery<'_>, system_output: SystemExecutionOutput, ) -> Result<(), ViewSystemExecutionError>

Implementors§