struct mola::MolaVizImGuiCore::PerWindowData
Overview
#include <MolaVizImGuiCore.h> struct PerWindowData { // structs struct PendingSensorObs; // fields GLFWwindow* glfw_window = nullptr; std::shared_ptr<mrpt::opengl::COpenGLScene> background_scene; std::mutex background_scene_mtx; std::unique_ptr<mrpt::imgui::CImGuiSceneView> background_scene_view; float cam_azimuth_deg = 110.0f; float cam_elevation_deg = 15.0f; float cam_zoom = 20.0f; float cam_look_at[3] = {0.0f, 0.0f, 0.0f}; bool cam_orthographic = false; bool cam_dirty = true; std::map<subwindow_name_t, SubWindowState> sub_windows; std::map<subwindow_name_t, PendingSensorObs> sensor_windows; std::deque<DecayingCloud> decaying_clouds; size_t max_decaying_clouds = 100; mola::gui::MenuBar menu_bar; bool console_open = true; std::vector<PlotWindowState> plot_windows; int next_plot_id = 1; bool console_dock_defaulted = false; ImGuiID dock_central_id = 0; ImGuiID default_dock_top_id = 0; };
Fields
std::unique_ptr<mrpt::imgui::CImGuiSceneView> background_scene_view
nullptr in embed mode (host renders via its own CImGuiSceneView).
bool console_open = true
Drives the Console window’s native [x] button; the “View” menu’s checklist re-opens it, same mechanism as the plot windows below.
std::vector<PlotWindowState> plot_windows
Open plot windows for this parent window; created via the “View” menu, each independently closable/reopenable.
bool console_dock_defaulted = false
Set once render_frame() has attempted the Console’s default bottom-dock, so it only runs once per session. The attempt itself is a no-op if the Console already has a saved imgui.ini entry (its own or a user-moved one).
ImGuiID dock_central_id = 0
ID of the dock node currently acting as the “remaining” passthrough area available for further default-dock splits (Console, then any dock_top_by_default window). Splitting off a slice always updates this to the new remainder, since after a node is split its own ID becomes a non-leaf parent and can no longer be split directly. Zero until the dockspace node has been resolved for the first time.
ImGuiID default_dock_top_id = 0
Dock node reserved at the top of the main window, lazily created the first time a window without a saved imgui.ini entry requests WindowDescription::dock_top_by_default (e.g. a Dataset_UI panel). Zero until then.