Stefan Habel

Visual Effects Software Engineer


08 / 07 / 2009

An object-oriented C++ framework for applications

My role: Software Engineer, UI Designer
Languages/Frameworks used: C++, Qt, OpenGL

frapper is a framework for applications that is currently in development at the Institute of Animation. frapper is based on Qt from Trolltech and provides applications with a flexible panel-oriented user interface that is tailored to the particular needs typical for 3D packages.

The different kinds of panels act as views onto the same 3D scene data. The main panel types are:

Panel Purpose
Viewport View the scene data as a 3D render
based on the scene-oriented, flexible 3D rendering engine OGRE or OpenGL
Hierarchy Editor Organize the objects of a 3D scene, like geometries, lights and cameras
Network Editor Create networks of nodes representing scene objects
Parameter Editor Edit parameters of selected scene objects
Timeline Manipulate time for creating animations

In addition to the main panel types listed above there are panels for displaying log messages like warnings and errors and for navigating through the history of commands executed by the user, implementing easy access to the application's undo/redo queue.

The classes that make frapper were originally created for the aQtree project and were extracted so that other applications currently in development at the Institute of Animation could be built upon the same UI base.
In the same way the internal data structure for the hierarchy of scene objects was extracted from aQtree and put into a separate project named Node Framework.
Screenshot of aQtree (07/28/2008), an application based on frapper