| CEngine::Application | Main engine application class. Manages the window and Direct3D11 context |
| CAsset | Base class for all assets in the engine. Defines the interface for loading, unloading, creating GPU resources, and binding the asset to the graphics pipeline |
| CMeshAsset | Asset representing a 3D mesh. Handles CPU and GPU data, including vertex and index buffers |
| CTextureAsset | Asset representing a texture that can be used in the DirectX rendering pipeline. Handles CPU/GPU resources, including shader resource view and underlying texture resource |
| CAssetManager | Central manager responsible for loading, storing, and managing all engine assets. Supports meshes, textures, and materials. Ensures that assets are loaded only once and reused when requested again |
| CRuntime::Bridge | High-level runtime bridge that manages the application, engine, and input |
| CEditor::Buttons | Class responsible for handling editor UI buttons and interactions. Manages project creation/loading, GameObject manipulation, component management, script handling, audio control, and project saving inside the editor |
| CCamera | Base camera class used to handle camera transformations, movement, and view/projection matrix generation. This class provides common camera functionality and must be inherited to implement specific camera behaviors |
| CEditorCamera | Camera used inside the editor environment. This camera allows free movement and rotation in the scene to inspect and manipulate objects during editing |
| CEngine::Component | Base class for all components in the engine. Components define behavior that can be attached to a GameObject |
| CEngine::AssetComponent | Component responsible for attaching an asset to an entity. Can store meshes, textures, or any asset derived from Asset |
| CEngine::MeshComponent | Component responsible for storing and managing a mesh for an entity. Used by the rendering system to draw geometry |
| CEngine::RigidBodyComponent | Component responsible for basic physics simulation. Handles velocity, forces, gravity, and position updates |
| CEngine::TextureComponent | Component responsible for storing a texture associated with a GameObject. This texture can later be used by the rendering system |
| CEngine::Transform | Transform component responsible for storing spatial data of a GameObject. Defines position, rotation, and scale in 3D space. Every GameObject should have exactly one Transform |
| CEngine::CoreEngine | Core class of the engine. Responsible for initializing systems, running the main loop, and shutting down the engine properly |
| CEngine::D3D11 | Wrapper class responsible for initializing and managing Direct3D 11. Handles device creation, swap chain, rendering targets, and draw calls |
| CEditor::EditorCore | Classe responsable de la gestion du cur de l'éditeur. Coordonne l'initialisation, l'exécution et l'arrêt de l'éditeur, ainsi que la gestion des entrées utilisateur et du moteur graphique |
| CEngine::GameObject | Represents an object in the scene. A GameObject can contain multiple components and be part of a hierarchy |
| CGuiLayer | Class responsible for managing the GUI layer using ImGui. Handles initialization, frame management, and rendering of the graphical user interface with DirectX11 and GLFW |
| CEditor::HubManager | Main hub manager for the El Motor editor. Manages overall editor state, UI rendering, and transitions between different editor modes. Coordinates between the GUI layer, the core editor, and the asset/script managers |
| CEngine::IAudioSystem | Interface representing the core audio system of the engine. Defines the API used to initialize the audio backend, manage sound resources, and control audio playback. Implementations can use different audio libraries (MiniAudio, FMOD, Wwise, etc.) |
| CEngine::MiniAudioSystem | Audio system implementation using MiniAudio. Handles loading, playing, and managing audio resources in the engine. Implements the IAudioSystem interface |
| CRuntime::InputBridge | Bridges input between GLFW and the Engine's InputManager |
| CEngine::InputManager | Handles keyboard and mouse input. Tracks key states, mouse buttons, and mouse movement |
| CEngine::IWindow | Abstract interface for a window in the engine. Allows the engine to interact with different window implementations |
| CEngine::WindowOpener | Concrete implementation of IWindow using GLFW. Manages window creation, events, and access to native handles |
| CEngine::LoggerManager | Singleton class responsible for logging messages to console and file. Supports Info, Warning, and Error log types |
| CMaths::Mat4< T > | 4x4 Matrix class template for 3D transformations Supports translation, rotation, scaling, multiplication, inversion, and more |
| CMaterial | Simple material class. Contains a diffuse color and an optional texture. Handles binding to the GPU pipeline |
| CEngine::MatrixBuffer | Constant buffer used to store camera matrices. Sent to the GPU each frame |
| CEngine::ObjectColorBuffer | Constant buffer used to send object color data to the pixel shader |
| CEditor::ProjectManager | Class responsible for managing editor projects. Handles project creation, loading, saving, and scene serialization within a project directory |
| CMaths::Quat< T > | Quaternion class template for rotations in 3D space Supports Euler conversion, normalization, multiplication, slerp/lerp, and rotation helpers |
| CEngine::Scene | Represents a scene containing multiple GameObjects. Manages creation, destruction, and updating of root GameObjects |
| CScript | Abstract base class for all user scripts |
| CUserScript | Represents a user-defined script that can be attached to game objects |
| CScriptManager | Manages user scripts, including creation, deletion, initialization, starting, and updating |
| CScriptRegistry | Singleton registry that manages user script factories and can instantiate scripts on demand |
| CEI::SoundDesc | Description of a sound resource. Defines how the audio file should be loaded and used |
| CEI::SoundManager | High-level sound manager that wraps around an IAudioSystem. Provides functionality for loading, playing, and stopping sounds |
| CTextureManager | |
| CEngine::TimeManager | Manages time tracking for the engine. Computes delta time between frames and the current FPS |
| CMaths::Vec2< T > | A 2D vector class template for mathematical operations |
| CMaths::Vec3< T > | A 3D vector class template for mathematical operations |
| CVertex | Structure representing a simple vertex. Contains position, normal, and texture coordinates |
| CEI::VoiceParams | Parameters used to control a playing sound instance |