Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 12]
 CAbstractCommandDefines the interface that every command has to implement
 CAbstractGraphicsObjectRoot of a class hierarchy of objects that contain independen game logic and are visible in the game
 CAbstractPhysicsObjectGraphical scene element with a physics-based aspect, meaning that it can move and collide with other AbstractPhysicsObjects
 CAbstractPlayerBase class for interacting with a train and a camera
 CAbstractWagonCommon interface for all wagon types and contains common functionality like position calculation &c
 CActionSchedulerMaintains a list of actions, that should be executed later in a specific context
 CAIPlayerImplements a simple artificial intelligence enemy player
 CBulletWorldA Wrapper class for a btDiscreteDynamicsWorld
 CCameraManages view and projection matrices that define a view of a 3D scene
 CCatmullRomSplineImplements a spline, that is determined by control points that lie on the spline
 CClientReadyCommandThe ClientReadyCommand signals to the server that the client has successfully created the World and is ready to start the game. It will subsequently unpause the local and remote game
 CDynamicPhysicsObjectA dynamic physics object is a physics object that is mostly passive. It will be affected by forces and its movement will be simulated by Bullet
 CEngineWagonWagon type, which primary action increases the trains velocity
 CEventHandlerReceives events (touch, key, mouse, gyroscope, etc.) and triggers actions, taking object states and context into account
 CExplosionRenders an explosion effect
 CGameMain entry point. It subclasses QQuickItem and handles all communication between QML and C++
 CGameEndedCommandThe GameEndedCommand signals that the remote game detected a winning or losing condition. It will display a victory or defeat screen accordingly
 CGeometryWraps the vertices data of one drawable object
 CIndexTripleUsed as a temporary geometry data storage, while parsing .obj files in the resourcemanager class
 CIPProviderA small helper class to determine the local IP address
 CKinematicPhysicsObjectA kinematic physics object is a "scripted" physics object, meaning that it will set its own movement. It will be used in collision detection, but bullet will not simulate its movement
 CLevelGenerator for level data such as terrain geometry and track courses
 CLevelConfigurationAll information necessary to configure a Level instance as well as some convenience methods to convert between model and texture space coordinates
 CLightLight source with a packed, shader compatible memory layout
 CLightManagerManages slots that can be filled with Light instances and is able to set those lights as a uniform array on a shader program
 CLocalPlayerLocal player that interacts with the World and their Train. It does not contain any logic; the sole purpose of this class is to distinguish different player types
 CMaterialWraps loading uniform data used as material coefficients
 CMathUtilHelper functions for calculations such as interpolation and trigonometric functions
 CNetworkClientThe NetworkServer implements the NetworkEndpoint interface as the client role of a TCP connection
 CNetworkEndpointCommon interface that NetworkServer and NetworkClient implement
 CNetworkManagerThe NetworkManager implements the basic functionality for the multiplayer mode of this game
 CNetworkServerThe NetworkServer implements the NetworkEndpoint interface as the server role of a TCP connection
 CPauseCommandThe PauseCommand pauses or unpauses the local game due to the remote game being paused
 CPerlinNoiseImplements a two dimensional noise function using multiple selectable gradient vector grids (layers)
 CPolylineImplements a sequence of line segments and is used to approximate a real spline
 CPrepareNewGameCommandThe PrepareNewGameCommand is sent to the client when a multiplayer session begins to synchronize the game timer, terrain seed and client player position (left or right track)
 CProgramThe program class implements the basic functionality used for binding programs to openGL
 CProjectileSimulates and renders a projectile. It also handles collisions with Wagons, deals damage and spawns Explosions
 CProjectileFiredCommandThe ProjectileFiredCommand indicates that a projectile has been fired and contains the position as well as the movement vector
 CProjectileHitCommandThe ProjectileHitCommand indicates that a projectile hit a wagon. It contains the wagonIndex as well as the damage dealt
 CRemotePlayerPlayer whose actions get transmitted over network. It does not contain any logic; the sole purpose of this class is to distinguish different player types
 CRepairWagonWagon type, which primary action increases the health of all still functional weagons by a fix percentage
 CResourceManagerLoads geometry, materials and shader progams during initialization and provides access to those resources
 CSkyBoxRenders an environment map in the form of a cube map on a screen aligned quad in the background
 CSoundManagerBasic music and sound playing functionality. All needed sound effects are stored in the member variable m_sounds. Implemented as a singelton, accessibility for all classes is ensured
 CSyncCommandThe SyncCommand is used to keep shared game state synchronized
 CTerrainRenders the terrain using patches and a displacement texture. Patches that are too far from the current camera position are culled
 CTimerImplements a set of pauseable duration counters (subsequently called timers) and mechanisms to adjust them individually or globally
 CTrackTrack that a Train moves on. It is currently not rendered. The course is represented by a Polyline instance
 CTrainWorks as a logical container for all wagons one train consists of
 CVertexThe struct wraps the important vertex data attributes position, texture coordinate and normal vector
 CWeaponWagonWagon type, which primary action shoots projectiles in the faced direction
 CWorldRunning game instance and contains all graphical (3D) elements of the scene