Bachelor Thesis - Computer Graphics Group
Bachelor Thesis - Computer Graphics Group
Bachelor Thesis - Computer Graphics Group
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Chapter 5<br />
Main application<br />
5.1 Application design<br />
The application has a modular, object oriented design taking advantage of<br />
class inheritance and virtual methods. More advanced C++ features, such as<br />
templates, exceptions and smart pointers have been used to increase productivity<br />
and reliability. We also tried to exploit the potential of the Qt toolkit as<br />
much as possible by taking advantage of the modules and features it provides.<br />
These include QPointer, QObject, signals and slots, custom events, multithreading,<br />
XML, etc. However, there were many cases where the platform<br />
dependent Windows API had to be used to achieve things not possible in Qt.<br />
This is mainly due to the nature of the application. We have to control other<br />
applications and deal with the operating system.<br />
The application implementation is divided into separate more or less independent<br />
classes. The majority of the code belongs to class methods. Only small<br />
helper routines used all over the application are standard functions. By their<br />
nature, classes can be separated into four distinct groups:<br />
• core logic<br />
• helper classes<br />
• user interface<br />
• command implementations<br />
Application configuration is based on Extensible Markup Language (XML)<br />
[12] in order to be modular. It proved to be beneficial during the development,<br />
when the user interface has not yet been implemented. As the format is user<br />
readable, the configuration could be easily modified using a simple text editor<br />
29