Developer Documentation

User Interface Concepts

OpenFlipper is a powerful tool that allows implementing algorithms on geometry with preferably small effort. It bases on the Qt plugin model such that it is easily extendable by user defined plugins. For information on how Qt plugins work we recommend developers to read the Qt documentation. The integration of a plugin into OpenFlipper's user interface and its interactivity are controlled by Plugin Interfaces that can be implemented. Also see Plugin Programming for a few small tutorials on OpenFlipper plugin programming.

# The user interface

The OpenFlipper user interface is composed of four essential widgets each accessible and extendable by user plugins:

- The viewport widget
- The plugin widget
- The logging widget
- The tool bar

# Mouse and keyboard events

The user interactivity is gained by plain Qt mouse and keyboard events. If the plugin wants to interact with the mouse or keyboard, it has to implement the MouseInterface and KeyInterface (for keyboard shortcuts, etc.). Read tutorial Implementing mouse and keyboard interaction to learn how to add mouse and keyboard interactivity to your plugin. Also see Plugin Interfaces for an overview of implementable interfaces.

# The viewport widget

The viewport widget visualizes the whole scenegraph. One can adjust viewer specific settings by chosing `View` in OpenFlippers menu bar. Adjustable settings contain:

- Drawmodes (points, wireframe, solid,...)
- Projection mode (orthogonal, perspective)
- Set / reset home view
- Capture screenshots
- Adapt colors such that they match the desired profile (for printing, presentation,...)

The viewport widget

# The plugin widget

The plugin widget shows the Qt toolboxes of the loaded plugins. A plugin can integrate its own toolbox by simply implementing the ToolboxInterface. Providing toolboxes is not mandatory, but most plugins make use of it in order to offer user control to its parameters.

The plugin widget with simple smoother plugin opened

# The logging widget

The logging widget is used to display plugin specific information, warnings or errors. By implementing the LoggingInterface a plugin can easily tell the user what is going on inside.

The logging widget after opening a triangle mesh file

# The tool bar

The toolbar at the top of OpenFlipper's main window offers clickable icons to quickly access a plugins function. A user plugin can integrate its own buttons into the tool bar by implementing the ToolbarInterface.

The tool bar