PathEngine home previous: Example Projectsnext: Tutorials
Contents, Programmers Guide, Example Projects, Project Setup and Launchers

Project Setup and Launchers

Example project types

Most of the example projects are built as 'testbed applications', i.e. dlls that run under the PathEngine testbed and use the testbed graphical functionality to show what is going on.

These testbed application projects are then included in the base 'testbed only' PathEngine SDK archive (which is publically available from PathEngine downloads page), and don't require installation of the standalone SDK library binaries or core SDK source code.

Some other projects are built as executable files that link directly with the run-time or 3D content processing libraries. These projects get installed when the corresponding binary or source code package is added.

Example project source code

Example project source code can be found under 'SDKRoot/code/project/', under a subdirectory corresponding to the type of project, and with the project entry point (or project 'main') in a cpp file with the same name as the example project.

So, for the 'Swarm' project, for example, the project entrypoint is found in 'SDKRoot/code/project/testbedApp/Swarm.cpp'.

Projects that link directly against the SDK are built as 'console exes', and can be found under 'SDKRoot/code/project/exampleConsoleExe/'.

Visual studio project configuration

Project configuration for each project can be found in 'SDKRoot/VisualStudio' and 'SDKRoot/VisualStudio2012', (under platform subdirectories) in Visual Studio project files with names based on the name of each project.

Project configuration in the VisualStudio directory is in Visual Studio 2008 format, but can also be automatically converted up to Visual Studio 2010.
Note that the automatic conversion may complain about a mismatch between the TargetName setting and the project output file (due to the automatic conversion setting up a new TargetName configuration setting based on the Visual Studio project name). This error can be ignored (since the output file is used in this case), or can be resolved manually by setting the TargetName configuration setting manually in the project configuration after update.

Building on other platforms

The example projects are portable, and can also be built on other platforms, with the relevant source code packages installed (dependant on certain dependancies being met for the testbed, in the case of testbed based examples).
Refer to Building with the Python Build Scripts and Building the TestBed for Other Platforms (in the source packages documentation), for more details.

For example projects that demonstrate multithreading features the windows multithreading API (with CRITICAL_SECTION and so on) is used when building the examples on Windows platforms, and pthreads when building on Linux.


Launchers for each demo can be found in 'SDKRoot/launchers_Windows_x86' or 'SDKRoot/launchers_Windows_x64' (for Windows) and 'SDKRoot/launchers_Linux_x86' or 'SDKRoot/launchers_Linux_x64' (for Linux, with source code packages installed).

Double clicking a launcher should start up the release build of the corresponding demo.

These launchers are essentially just very short batch files (or bash scripts) with the path to the relevant build location for the demo project, for that platform (but with this slightly complicated the need to also pass the location and extension for a target dll for certain examples).

It should be straightforward to copy launchers and modify to run the debug build, or to change the location of the target dll.

On Linux platforms, the launchers for console projects need to open a terminal, and so will need the corresponding terminal to be available on your system in order to run correctly.
At the time of writing, these use 'xterm', which may then need to be installed with e.g. 'sudo apt-get install xterm'.
If this doesn't work, note that you can also copy the relevant command and arguments out of the relevant launcher, and run this directly in a terminal manually.

Documentation for PathEngine release 6.03 - Copyright © 2002-2021 PathEnginenext: Tutorials