File Controllers.h
FileList > editor > Controllers.h
Go to the source code of this file
Base controller architecture for event-driven application logic. More...
#include "Events.h"#include <unordered_map>#include <typeindex>#include <memory>
Classes
| Type | Name |
|---|---|
| class | ControllerManager Centralized manager for controller registration and ownership. |
| class | Controllers Abstract base class for all controllers in the Editor layer. |
Detailed Description
Controllers contain Editor-layer logic that responds to Events from the UI and manipulates scene state accordingly. This file defines the base controller interface and a centralized manager for controller registration.
Architecture: * Controllers bind to EventPool on initialization to subscribe to relevant events * Each controller handles a specific domain (camera, viewport, shaders, etc.) * ControllerManager owns and orchestrates all controllers * Controllers operate on Scene/Context but never directly call OpenGL
Design Pattern: * Controllers bridge UI events → Scene mutations * State flows: UI → Event → Controller → Scene → Context → Renderer * Controllers MAY emit events to notify other systems * Controllers MUST NOT depend on UI or Renderer internals
Note:
Controllers are Editor-layer components and must not leak into Renderer.
Note:
Each controller type is registered once via RTTI-based lookup.
The documentation for this class was generated from the following file src/editor/Controllers.h