Class AbstractInterface

Inheritance Relationships

Derived Type

Class Documentation

class AbstractInterface

Abstract base class for visualization backends.

Owns common worker loops and shared wiring between SLAM state producers and concrete visualization sinks.

Subclassed by slam_mer::interface::InterfaceRerun

Public Functions

AbstractInterface() = default

Construct the base interface object.

virtual ~AbstractInterface() = default

Destroy the interface object.

void initiate(PointersVisualization pointers_, const double queryMapLogFrequency_ = 10.0, const double queryCameraLogFrequency_ = 10.0)

Initialize data bindings and start interface worker threads.

Parameters:
  • pointers_ – Collection of shared queues/functions used to fetch map, keyframe, and debug data from the SLAM pipeline.

  • queryMapLogFrequency_ – Target frequency (Hz) of the map logging loop (points/cells/cloud updates).

  • queryCameraLogFrequency_ – Target frequency (Hz) of the camera and diagnostics logging loop.

virtual bool stop_interface()

Stop worker threads and release shared interface resources.

Returns:

true when shutdown completed.

Protected Functions

void log_points()

Synchronize sparse map-point buffers from SLAM to interface state.

void log_cells()

Synchronize map-cell buffers from SLAM to interface state.

void __map_loop(std::stop_token token_)

Thread body that publishes map-layer visuals at a fixed rate.

Parameters:

token_ – Cooperative stop token used to terminate the loop.

void __camera_loop(std::stop_token token_)

Thread body that publishes camera/images/diagnostics at a fixed rate.

Parameters:

token_ – Cooperative stop token used to terminate the loop.

void __internal_update_loop(std::stop_token token_)

Thread body that refreshes interface-side caches from shared queues.

Parameters:

token_ – Cooperative stop token used to terminate the loop.

Protected Attributes

std::jthread _mapLogThread

Updating threads.

std::jthread _cameraLogThread

Lunch the rerun log loop for the camera in a separate thread.

std::jthread _updateDataThread

Updating threads.

Private Functions

virtual void __log_messages() = 0

Emit queued textual messages to the backend.

virtual void __log_images() = 0

Emit latest image/depth/debug frames to the backend.

virtual void __log_dense_point_cloud() = 0

Emit dense point cloud data to the backend.

virtual void __log_points() = 0

Emit sparse map points to the backend.

virtual void __log_cells() = 0

Emit voxel/cell primitives to the backend.

virtual void __log_camera_location() = 0

Emit camera transform/state to the backend.

virtual void __log_histogram_counts() = 0

Emit localization histogram metrics to the backend.

virtual void __log_keyframe_criteria() = 0

Emit keyframe-creation criteria metrics to the backend.

virtual void __log_covisibility() = 0

Emit covisibility graph edges to the backend.