FLTK (Fast Light toolkit) is one of the only open source frameworks which natively supports OpenGL. It uses the core API on each platform (X11 for Linux, GDI for Windows, Quickdraw/Quartz for MacOS). It does not depend on text-based attributes (GTK+, Motif), complex chains of support libraries (GTK+, QT, wxWidgets), workarounds to provide OO features in standard C (GTK+), a special compiler preprocessor (QT), or a non-standard variant of C (Cocoa). Because Player already supports GTK+, this was not an obvious choice. Also toolkits based on GLUT were discarded as they do not share OpenGL contexts between windows.
XML solves human readability and computer readability by tagging data. One of the advantages of XML is that it can be validated using relax-ng and the XML schema definition (XSD). The XML syntax can be transformed using the Extensible Stylesheet Language Transformation (XSLT). This feature can be useful for batch updating existing configuration files with new features. Another possible use of XML is for the communication of XML data streams between components. Configuration files representing the HRI should be easy to parse, understand and also have its syntax extended by the users. We provide a combination of XML files for describing the user interface with relax-ng schemas for real-time syntax completion and validation of the HRI configuration files.
OBJ is a geometry definition file format first developed by Silicon Graphics for its WaveFront 3D animation package. It can describe individual objects and their surface characteristics, or entire scenes including animation sequences. An OBJ file is good for storing an ASCII description of the surface of one or more 3D objects, composed of triangles or higher degree polygons. An OBJ file may define and access an external MTL library, which contains definitions of various material types used. This file separation between the polygon mesh and the material library is of great advantage in robotics. For example in a physics experiment the researcher may need to convert the polygon mesh to a 3D envelope for collision detection. This is possible by exporting the object using a triangular mesh format and then use a physics engine to load the object collision envelope from the trimesh data. Computer Vision applications may need access to the material library component of the OBJ, so the external MTL in ASCII format easens the parsing. The OBJ file format can be also imported and exported by popular 3D modelling software, such as Wings 3D.
- See also:
- http://local.wasp.uwa.edu.au/~pbourke/dataformats/obj/ for more information on the OBJ format.