#![recursion_limit = "256"]
mod active_store_context;
mod annotations;
mod app_context;
mod app_options;
mod blueprint_helpers;
mod blueprint_id;
mod cache;
mod collapsed_id;
mod command_sender;
mod component_fallbacks;
mod component_ui_registry;
mod contents;
mod drag_and_drop;
mod file_dialog;
mod focus_target;
mod heuristics;
mod image_info;
mod item;
mod item_collection;
mod link_button;
mod maybe_mut_ref;
pub mod open_url;
mod query_context;
mod query_range;
mod recording_or_table;
mod route;
mod selection_state;
mod storage_context;
pub mod store_hub;
mod store_view_context;
mod tables;
mod tensor;
mod time_control;
mod typed_entity_collections;
mod undo;
mod utils;
mod view;
mod viewer_context;
pub mod gpu_bridge;
mod visitor_flow_control;
pub use re_ui::UiLayout;
pub use self::active_store_context::ActiveStoreContext;
pub use self::annotations::{
AnnotationContextStoreSubscriber, AnnotationMap, Annotations, ResolvedAnnotationInfo,
ResolvedAnnotationInfos,
};
pub use self::app_context::{AppContext, AuthContext};
pub use self::app_options::{AppOptions, ExperimentalAppOptions, VideoOptions};
pub use self::blueprint_helpers::{
AppBlueprintCtx, BlueprintContext, blueprint_timeline, blueprint_timepoint_for_writes,
};
pub use self::blueprint_id::{
BlueprintId, BlueprintIdRegistry, ContainerId, GLOBAL_VIEW_ID, ViewId,
};
pub use self::cache::{
AppCaches, Cache, CacheEntryAccess, EncodedDepthImageStatsCache, ImageDecodeCache,
ImageHistogramCache, ImageStatsCache, Memoizers, Rgb8Histogram, SharablePlayableVideoStream,
StoreCache, TensorStatsAccessor, TensorStatsCache, TransformDatabaseStoreCache,
VideoAssetCache, VideoStoreSource, VideoStreamCache, VideoStreamProcessingError,
};
pub use self::collapsed_id::{CollapseItem, CollapseScope, CollapsedId};
pub use self::command_sender::{
CommandReceiver, CommandSender, DownloadAction, EditRedapServerModalCommand, SystemCommand,
SystemCommandSender, command_channel,
};
pub use self::component_fallbacks::{
ComponentFallbackError, FallbackProviderRegistry, typed_fallback_for,
};
pub use self::component_ui_registry::{
ComponentUiRegistry, ComponentUiTypes, EditTarget, TryShowEditUiResult, VariantName,
};
pub use self::contents::{Contents, ContentsName, blueprint_id_to_tile_id};
pub use self::drag_and_drop::{DragAndDropFeedback, DragAndDropManager, DragAndDropPayload};
pub use self::file_dialog::sanitize_file_name;
pub use self::focus_target::FocusTarget;
pub use self::heuristics::suggest_view_for_each_entity;
pub use self::image_info::{
ColormapWithRange, ImageInfo, StoredBlobCacheKey, resolution_of_image_at,
};
pub use self::item::{
DataResultInteractionAddress, Item, RedapEntryKind, resolve_mono_instance_path,
resolve_mono_instance_path_item,
};
pub use self::item_collection::{ItemCollection, ItemContext};
pub use self::link_button::{
LinkKind, ResolvedEntry, UrlNameLookup, make_url_decorator, segment_button_atoms, url_atoms,
};
pub use self::maybe_mut_ref::MaybeMutRef;
pub use self::query_context::{
DataQueryResult, DataResultHandle, DataResultNode, DataResultTree, QueryContext,
};
pub use self::query_range::QueryRange;
pub use self::recording_or_table::RecordingOrTable;
pub use self::route::Route;
pub use self::selection_state::{
ApplicationSelectionState, HoverHighlight, InteractionHighlight, SelectionChange,
SelectionHighlight,
};
pub use self::storage_context::StorageContext;
pub use self::store_hub::{EntityDbUsages, StoreHub};
pub use self::store_view_context::StoreViewContext;
pub use self::tables::{TableStore, TableStores};
pub use self::tensor::{ImageStats, TensorStats};
pub use self::time_control::{
MoveDirection, MoveSpeed, TIME_PANEL_PATH, TimeControl, TimeControlCommand,
TimeControlResponse, TimeControlUpdateParams, TimeRangeHighlight, TimeRangeHighlightKind,
TimeView, time_panel_blueprint_entity_path,
};
pub use self::typed_entity_collections::{
BufferAndFormatMatch, DatatypeMatch, IndicatedEntities, PerVisualizerInstruction,
PerVisualizerType, PerVisualizerTypeInViewClass, SingleRequiredComponentMatch,
VisualizableEntities, VisualizableReason,
};
pub use self::undo::BlueprintUndoState;
pub use self::utils::{
auto_color_egui, auto_color_for_entity_path, level_to_rich_text, video_stream_time_from_query,
video_timestamp_component_to_video_time,
};
pub use self::view::{
BufferAndFormatConstraint, DataResult, IdentifiedViewSystem, OptionalViewEntityHighlight,
PerSystemEntities, PreviewState, RecommendedMappings, RecommendedView, RecommendedVisualizers,
SingleRequiredComponentConstraint, SystemExecutionOutput, ViewClass, ViewClassExt,
ViewClassLayoutPriority, ViewClassPlaceholder, ViewClassRegistry, ViewClassRegistryError,
ViewClassUiOutput, ViewContext, ViewContextCollection, ViewContextSystem,
ViewContextSystemOncePerFrameResult, ViewEntityHighlight, ViewHighlights, ViewOutlineMasks,
ViewQuery, ViewSpawnHeuristics, ViewState, ViewStateExt, ViewStates, ViewSystemExecutionError,
ViewSystemIdentifier, ViewSystemRegistrator, ViewSystemState, ViewerDiagnostic,
ViewerReportSeverity, VisualizabilityConstraints, VisualizerCollection,
VisualizerComponentMappings, VisualizerComponentSource, VisualizerExecutionOutput,
VisualizerInstruction, VisualizerInstructionReport, VisualizerInstructionsPerType,
VisualizerQueryInfo, VisualizerReportContext, VisualizerSystem, VisualizerTypeReport,
VisualizerViewReport, VisualizersSectionOutput, VisualizersSectionUi,
};
pub use self::viewer_context::ViewerContext;
pub use self::visitor_flow_control::VisitorControlFlow;
pub mod external {
#[cfg(not(target_arch = "wasm32"))]
pub use tokio;
pub use {
nohash_hasher, re_chunk_store, re_entity_db, re_log_types, re_query, re_string_interner,
re_tf, re_ui,
};
}
pub use re_byte_size::SizeBytes;
pub use re_chunk_store::MissingChunkReporter;
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum NeedsRepaint {
Yes,
No,
}
impl NeedsRepaint {
pub fn or(self, other: Self) -> Self {
if self == Self::Yes || other == Self::Yes {
Self::Yes
} else {
Self::No
}
}
}
#[inline]
pub fn icon_for_container_kind(kind: &egui_tiles::ContainerKind) -> &'static re_ui::Icon {
match kind {
egui_tiles::ContainerKind::Tabs => &re_ui::icons::CONTAINER_TABS,
egui_tiles::ContainerKind::Horizontal => &re_ui::icons::CONTAINER_HORIZONTAL,
egui_tiles::ContainerKind::Vertical => &re_ui::icons::CONTAINER_VERTICAL,
egui_tiles::ContainerKind::Grid => &re_ui::icons::CONTAINER_GRID,
}
}
pub fn contents_name_style(name: &ContentsName) -> re_ui::LabelStyle {
match name {
ContentsName::Named(_) => re_ui::LabelStyle::Normal,
ContentsName::Placeholder(_) => re_ui::LabelStyle::Unnamed,
}
}
#[derive(Clone, Debug, PartialEq)]
pub struct ScreenshotInfo {
pub ui_rect: Option<egui::Rect>,
pub pixels_per_point: f32,
pub name: String,
pub target: ScreenshotTarget,
pub notify: bool,
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub enum ScreenshotTarget {
CopyToClipboard,
SaveToPathFromFileDialog,
SaveToPath(camino::Utf8PathBuf),
}
pub type ViewRectPublisher = egui::cache::FramePublisher<ViewId, PublishedViewInfo>;
#[derive(Clone, Debug)]
pub struct PublishedViewInfo {
pub name: String,
pub rect: egui::Rect,
}