eXperiment robotics framework


Collaboration diagram for Plugins.:
The basic element of the composable application are the plugins. More...


 Plugin: About
 Display information on loaded plugins.
 Plugin: Framework Debugger
 prints the information on the managers and also the hits(objects under the mouse).
 Plugin: Framebuffer Object
 Uses the FrameBufferObject extension from opengl 2.0 to apply filters to images.
 Plugin: Ground
 Provides a ground plane for hit detection.
 Plugin: ImageLoader
 Displays image_loader files.
 Plugin: Latex
 Displays latex files.
 Plugin: Launcher
 Launches external programs.
 Plugin: Lights
 Enables lights in the window.
 Plugin: Manager of Tags
 Manages tags on world objects.
 Plugin: Manager of Zones
 manages polygonal zones on the world.
 Plugin: Objloader
 Objloader for plugins Objloader for plugins.
 Plugin: PopHead
 Display information on loaded plugins.
 Plugin: read opengl buffers
 read opengl buffers like the stencil and the z-buffer and displays it in other windows.
 Plugin: Ruler
 Measure distances in the world.
 Plugin: Serialize
 Display information on loaded plugins.
 Plugin: Template
 Template for plugins Template for plugins.
 Plugin: CV_TextureConvert
 converts textures in-between 8/24/32 bit color, and also rescales textures.


class  Plugin
 A dynamic loadable piece of functionality. More...
class  AuthorInfo
 Information that authors may care to provide about plugins. More...

Detailed Description

The basic element of the composable application are the plugins.

Plugins extend the functionality of the application and are identified either by their library name or an unique id field defined in the XML configuration file. Plugins are provided with default configurations so that they can run out of the box, imposing a minimal need to known the parameters of how they work. As there is a clear and simple interface for plugins, the development is possible without the need to read and understand the source of the rest of the composite application. A plugin can contain calls to OpenGL, to FLTK, or anything the developer wants to encapsulate in them. Plugins are free to do anything, like adding widgets to the HRI, adding new entities to the world, communicating with the Player server, accessing other plugin data, etc. Every component of PV3D inherits from the base Plugin C++ class. Plugins read their states from the XML files and when PV3D finishes, their states can be serialized (saved) again to the disk. The plugin class also contains some information of the plugin: the author, the webpage, a description, and the license. During the plugin lifetime its following methods are called:

  1. initialize - is called after the windows are shown and they OpenGL contexts are created.
  2. run - is called at each iteration, the method will draw or process data.
  3. clean - is called just before the plugin object is removed from the framework. The Plugin is implemented as a libtool shared library, this way it is accessible within multiple operating systems.

The miarn project - written by Joao Xavier