10.08.2013 Views

Bachelor Thesis - Computer Graphics Group

Bachelor Thesis - Computer Graphics Group

Bachelor Thesis - Computer Graphics Group

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!