/** \page uiconcept 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
 * \ref interfaces that can be implemented. Also see \ref pluginProgramming for
 * a few small tutorials on OpenFlipper plugin programming.
 *
 * \section userInterface The user interface
 *
 * The OpenFlipper user interface is composed of four essential widgets
 * each accessible and extendable by user plugins:
 *
 * - \ref viewport_widget
 * - \ref plugin_widget
 * - \ref logging_widget
 * - \ref tool_bar
 *
 * \section mouseKeyboardEvents 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 \ref MouseInterface and \ref KeyInterface
 * (for keyboard shortcuts, etc.). Read tutorial \ref ex3 to learn how
 * to add mouse and keyboard interactivity to your plugin. Also see
 * \ref interfaces for an overview of implementable interfaces.
 *
 * \section viewport_widget The viewport widget
 *
 * The viewport widget visualizes the whole scenegraph. One can adjust
 * viewer specific settings by chosing \c 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,...)
 *
 * \image html viewport_widget.png The viewport widget
 *
 * \section plugin_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 \ref ToolboxInterface. Providing toolboxes
 * is not mandatory, but most plugins make use of it in order to offer user control
 * to its parameters.
 *
 * \image html plugin_widget.png The plugin widget with simple smoother plugin opened
 *
 * \section logging_widget The logging widget
 *
 * The logging widget is used to display plugin specific information,
 * warnings or errors. By implementing the \ref LoggingInterface a plugin
 * can easily tell the user what is going on inside.
 *
 * \image html logging_widget.png The logging widget after opening a triangle mesh file
 *
 * \section tool_bar 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 \ref ToolbarInterface.
 *
 * \image html tool_bar.png The tool bar
 */

