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 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