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 3<br />

Technologies used<br />

The application has been developed in C++, as already mentioned in the Introduction.<br />

The main reasons for choosing C++ were high performance and the<br />

ability to write low-level system code easily. After selecting the programming<br />

language, the development tools and libraries had to be decided. C++ is an<br />

extremely widespread language offering dozens of development environments<br />

and thousands of different libraries and toolkits.<br />

3.1 Visual Studio 2008 + Feature Pack<br />

The choice of the integrated development environment (IDE) was straightforward.<br />

Microsoft Visual Studio is a quality product, probably the best choice<br />

for Windows development. A student license for non-commercial purposes is<br />

available through the MSDN Academic Alliance program. The C++ compiler<br />

offers very good performance of the generated binary code. MSDN provides<br />

extensive documentation of the Windows API, which cannot be avoided. The<br />

program has to interact with and control other user’s applications in ways not<br />

offered by higher-level frameworks.<br />

Smart pointers, included in Technical Report 1 (TR1) [35], have been used.<br />

TR1 is an addition to the Standard Template Library (STL). By using the<br />

shared ptr template class, the majority of explicit object destruction could be<br />

eliminated. This helps to avoid potential memory leaks and problems related<br />

to passing of object instances. There are two ways how to get TR1. Either<br />

from the Visual C++ 2008 Feature Pack [24], which has been released recently<br />

and will be a part of the upcoming Service Pack 1. The second possibility is to<br />

use Boost, a collection of free high quality C++ libraries for various purposes.<br />

16

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

Saved successfully!

Ooh no, something went wrong!