Skip to content

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 → SceneContextRenderer * 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