| ▼Cterminus::AbstractCommand | Defines the interface that every command has to implement |
| Cterminus::ClientReadyCommand | The 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 |
| Cterminus::GameEndedCommand | The GameEndedCommand signals that the remote game detected a winning or losing condition. It will display a victory or defeat screen accordingly |
| Cterminus::PauseCommand | The PauseCommand pauses or unpauses the local game due to the remote game being paused |
| Cterminus::PrepareNewGameCommand | The 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) |
| Cterminus::ProjectileFiredCommand | The ProjectileFiredCommand indicates that a projectile has been fired and contains the position as well as the movement vector |
| Cterminus::ProjectileHitCommand | The ProjectileHitCommand indicates that a projectile hit a wagon. It contains the wagonIndex as well as the damage dealt |
| Cterminus::SyncCommand | The SyncCommand is used to keep shared game state synchronized |
| ▼Cterminus::AbstractGraphicsObject | Root of a class hierarchy of objects that contain independen game logic and are visible in the game |
| ▼Cterminus::AbstractPhysicsObject | Graphical scene element with a physics-based aspect, meaning that it can move and collide with other AbstractPhysicsObjects |
| ▼Cterminus::DynamicPhysicsObject | A 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 |
| Cterminus::Projectile | Simulates and renders a projectile. It also handles collisions with Wagons, deals damage and spawns Explosions |
| ▼Cterminus::KinematicPhysicsObject | A 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 |
| ▼Cterminus::AbstractWagon | Common interface for all wagon types and contains common functionality like position calculation &c |
| Cterminus::EngineWagon | Wagon type, which primary action increases the trains velocity |
| Cterminus::RepairWagon | Wagon type, which primary action increases the health of all still functional weagons by a fix percentage |
| Cterminus::WeaponWagon | Wagon type, which primary action shoots projectiles in the faced direction |
| Cterminus::Explosion | Renders an explosion effect |
| Cterminus::SkyBox | Renders an environment map in the form of a cube map on a screen aligned quad in the background |
| Cterminus::Terrain | Renders the terrain using patches and a displacement texture. Patches that are too far from the current camera position are culled |
| Cterminus::Track | Track that a Train moves on. It is currently not rendered. The course is represented by a Polyline instance |
| Cterminus::Train | Works as a logical container for all wagons one train consists of |
| ▼Cterminus::AbstractPlayer | Base class for interacting with a train and a camera |
| Cterminus::AIPlayer | Implements a simple artificial intelligence enemy player |
| Cterminus::LocalPlayer | Local 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 |
| Cterminus::RemotePlayer | Player whose actions get transmitted over network. It does not contain any logic; the sole purpose of this class is to distinguish different player types |
| Cterminus::ActionScheduler | Maintains a list of actions, that should be executed later in a specific context |
| Cterminus::BulletWorld | A Wrapper class for a btDiscreteDynamicsWorld |
| Cterminus::Camera | Manages view and projection matrices that define a view of a 3D scene |
| Cterminus::CatmullRomSpline | Implements a spline, that is determined by control points that lie on the spline |
| Cterminus::EventHandler | Receives events (touch, key, mouse, gyroscope, etc.) and triggers actions, taking object states and context into account |
| Cterminus::Geometry | Wraps the vertices data of one drawable object |
| Cterminus::IndexTriple | Used as a temporary geometry data storage, while parsing .obj files in the resourcemanager class |
| Cterminus::Level | Generator for level data such as terrain geometry and track courses |
| Cterminus::LevelConfiguration | All information necessary to configure a Level instance as well as some convenience methods to convert between model and texture space coordinates |
| Cterminus::Light | Light source with a packed, shader compatible memory layout |
| Cterminus::LightManager | Manages slots that can be filled with Light instances and is able to set those lights as a uniform array on a shader program |
| Cterminus::Material | Wraps loading uniform data used as material coefficients |
| Cterminus::MathUtil | Helper functions for calculations such as interpolation and trigonometric functions |
| Cterminus::PerlinNoise | Implements a two dimensional noise function using multiple selectable gradient vector grids (layers) |
| Cterminus::Polyline | Implements a sequence of line segments and is used to approximate a real spline |
| Cterminus::Program | The program class implements the basic functionality used for binding programs to openGL |
| ▼CQObject | |
| Cterminus::IPProvider | A small helper class to determine the local IP address |
| ▼Cterminus::NetworkEndpoint | Common interface that NetworkServer and NetworkClient implement |
| Cterminus::NetworkClient | The NetworkServer implements the NetworkEndpoint interface as the client role of a TCP connection |
| Cterminus::NetworkServer | The NetworkServer implements the NetworkEndpoint interface as the server role of a TCP connection |
| Cterminus::NetworkManager | The NetworkManager implements the basic functionality for the multiplayer mode of this game |
| Cterminus::SoundManager | Basic 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 |
| Cterminus::World | Running game instance and contains all graphical (3D) elements of the scene |
| ▼CQQuickItem | |
| Cterminus::Game | Main entry point. It subclasses QQuickItem and handles all communication between QML and C++ |
| Cterminus::ResourceManager | Loads geometry, materials and shader progams during initialization and provides access to those resources |
| Cterminus::Timer | Implements a set of pauseable duration counters (subsequently called timers) and mechanisms to adjust them individually or globally |
| Cterminus::Vertex | The struct wraps the important vertex data attributes position, texture coordinate and normal vector |