gz-rviz
gz-rviz copied to clipboard
[GSoC] Visualization plugins placement
This ticket is concerned with how the visualization plugins are loaded and placed in ign-rviz.
Potential places to load visualization plugins:
- Dialog window on the top-right of ignition gui.
- Drawer Menu in ignition-gui. The save/load config options can then be moved to the dialog window.
- Add, Remove, Duplicate button in a master visualization Displays GUI plugin (similar to RViz)
After loading the plugins, where are these visualization plugins placed in the application GUI:
- Each plugin is loaded individually with their GUI configs and is split horizontally adding new visualization plugins (like GUI plugins in ign-gui)
- All the visualization plugins after loading are placed in a master Displays GUI plugin and can be configured from there. (like RViz)
In the scenario where multiple visualization plugins are loaded, option 1 might tend to clutter the GUI. I am not sure if option 2 is feasible.
@ahcorde, @chapulina can you help me figure out the right implementation for this problem?
If I understand correctly, this question is about whether visualization plugins should have different placement from regular plugins.
As a reference, we used to have support for "display plugins" on ign-gui0
. There was a plugin called Displays
which was a regular ign-gui
plugin:
https://github.com/ignitionrobotics/ign-gui/blob/560389770529d50a1b7c925c211ba0967fccd12b/include/ignition/gui/plugins/Displays.hh#L35-L45
And that plugin loaded within it other plugins that inherited from the DisplayPlugin
class:
https://github.com/ignitionrobotics/ign-gui/blob/560389770529d50a1b7c925c211ba0967fccd12b/include/ignition/gui/DisplayPlugin.hh#L36-L37
You can see some screen captures of that at work here:
https://osrf-migration.github.io/ignition-gh-pages/#!/ignitionrobotics/ign-gui/pull-requests/150/page/1
So I think that this would fit your options 3 and 2:
- Add, Remove, Duplicate button in a master visualization Displays GUI plugin (similar to RViz)
- All the visualization plugins after loading are placed in a master Displays GUI plugin and can be configured from there. (like RViz)
We don't need to follow the same structure, but I hope it's a helpful reference. One of the downsides to that approach was that we had a lot of duplicate code between Plugin
and DisplayPlugin
which would be nice to avoid.