ArMem Servers + Viewer: Add general framework to allow visualization and other operations triggered by Viewer

  • Allow visualizing instances / complete slices from GUI
  • Allow memory servers to offer other operations over GUI

Possible design for visualization:

  • Memory Servers have a visualize(MemoryQuery query, Flags flags) function (input is a single struct, of course)
  • MemoryQuery specifies what should be visualized.
  • Flags specify something like set/add/hide (but should not be too complex)
  • Memory server runs the query and visualizes the content of the result
  • Memory server may return a result (success/failure)

A similar framework could be imagined for general operations (e.g. attaching an object to a robot node as offered by ObjectPoseGui), but need some consideration.

  • Memory servers have a Actions[] getGuiActions(MemoryID, ...) function that is triggered by Gui when an entity is selected
  • Memory servers somehow specify actions for context menu (could we extend the RemoteGui framework for that?)
  • Gui adds actions to context menu.
  • When an action is selected, it triggers the server correspondingly: Result runGuiAction(MemoryID, action text, action data)
  • Result may be shown in GUI (e.g. some message like "object X is attached to robot node Y"