PathEngine home previous: Ownership and Lifetimesnext: Shape Validation
Contents, Programmers Guide, Applying the SDK, Working with the TestBed

Working with the TestBed


The testbed binaries included with the base SDK archive require Microsoft Windows, on x86 or x64 architecure, with DirectX 9 or greater installed.

The testbed can also be built for Linux, with the source code packages.
(See Building the TestBed for Other Platforms for more details about this.)

Starting the testbed

When executed, the testbed will look for a test application to load, which should be compiled either as a windows DLL (on Windows), or shared library (on Linux).

By default, the testbed will look for a dll (or so) with name 'TestApplication' using the default OS search path. (So, first of all in the testbed's working directory, and then in an OS specific set of other search locations.)

Usually, however, the application to be loaded will be specified as a command line argument (see below).

Control of execution is passed over to this test application after the testbed has initialised.

See Linking with the TestBed for details about linkage between the testbed and this dll.

The test application controls what is drawn every frame and may also include arbitrary control logic.
The testbed handles default control and positioning of the camera and details of rendering the scene.

Command line arguments

windowsize=width,height Sets the testbed window size to the specified width and height.
app=dllname Tells the testbed to use dllname instead of 'testapplication.dll'.
This name can include a relative or absolute path to the dll.
(The string is simply passed into LoadLibrary().)
This argument should be supplied last.
nosound Start without initialising sound libraries (where supported).
checknooutstandingrefs Emits a warning if there are outstanding API object references after the testbed application exits.

So, for example running the testbed with the command line "testbed windowsize=1270,720 app=SemiDynamicObstacles" will open a window with width 1270 pixels and height 720 pixels, and then load and run 'SemiDynamicObstacles.dll' as a testbed application.

The SDK archive includes batch files to run some of the example applications (e.g. see 'SDKRoot/bin/run SemiDynamicObstacles.bat').
This enables command line arguments to be set for each time a certain testbed application is run, without requiring any kind of install or setup set dependant on the chosen install directory.

Controlling the camera

To rotate, pan or zoom the camera hold one of the following keys while moving the mouse:

Hold down
Effect of mouse movement
'1' Rotate
'2' Pan
'3' Zoom
Left shift + '3' Dolly (not usually required now that the testbed performs automatic camera target adjustment, see below)

An alternative (maya style) set of controls is also provided:

Hold down
Effect of mouse movement
Left control + Left mouse button Rotate
Left control + Middle mouse button Pan
Left control + Left and middle mouse buttons Zoom
Left shift + Left control + Left and middle mouse buttons Dolly (not usually required now that the testbed performs automatic camera target adjustment, see below)

Advanced camera controls

In some situations, being able to rotate a 3D camera intuitively depends on having the camera target set correctly (since this is effectively used as a centre position for camera rotation).

To help with this, a white cross is displayed at the camera target when any of the camera controls are active.

If necessary, it is possible to force the camera to 'dolly' instead of 'zoom', by holding the left shift key.
This essentially means that both camera position and camera target are moved backward or forward instead of just the camera position.

The testbed also performs a kind of automatic camera adjustment, which means that manual dolly is not necessary in most situations.
Basically, if the mouse is over a mesh when you start panning then distance to camera target will be set according to the distance to that mesh position.
Any subsequence rotations will then be based on this distance, and generally feel more intuitive.

Full screen mode

The testbed can be toggled between windowed and full screen modes by holding the left shift key and pressing the right mouse button.

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