roviz  0.7
Code Documentation of roviz
roviz

This is the combined documentation of the roviz framework and the itemframework.

The roviz framework is optimized to easily manipulate image/video streams within the itemframework. It is completely decoupled from Qt and items that are carefully written can therefore directly run on e.g. embedded hardware. To achieve this portability, the base class of all items, RovizItem, is written portably in pure C++. Depending on how the user compiles the program, RovizItem gets a different base class and a different backend. Currently there are two supported backends: Dev and Cmdline. Dev is the default itemframework implementation mainly intended for devlopment and testing of solutions. The Cmdline backend on the other hand has no graphical interface anymore and is trimmed for performance. It parses a project file that was created with the Dev backend and runs it in a portable, Qt-less and fast environment.

Items also have a start/pause/stop mechanism that is triggered externally. When an item is started, it gets its own thread where it can process all the data. Pause will make the thread wait, but preserves the state the item currently has. Stop will stop the thread and the item will fall back to its initial state.

There are trim values and configs to customize the item. Trim values are nummeric values that can be adjusted at runtime. Adjusting them can for example happen with a slider on a GUI (which the Dev backend provides). Configs on the other hand are not meant to change often. You have to open a sepearate config window to change them (with the Dev backend). The advantage of them is that there are more data types available for configs. They can be used for static values, like frame sizes, that you most likely only have to set once and can forget about afterwards. Both, trim values and configs are saved to the project by the Dev backend using the itemframeworks settingsScope.

The roviz framework provides multiple types of streams that can for example transport images or messages between items. See StreamObject.

To get started with roviz, have a look at getting_started.

For more information, please visit this projects homepage: https://rdit-ch.github.io/roviz/