***************** Project Overview ***************** .. toctree:: :maxdepth: 4 :caption: Contents: Project Structure ================= The project is organized with a clear separation of concerns between rendering, UI integration, and documentation. This structure is designed to ensure **maintainability**, **reusability**, and a smooth build process across platforms. At a glance, the layout highlights: - A dedicated source and include tree for C++ logic. - UI-agnostic rendering code separated from wxWidgets integration. - Assets and documentation bundled in their respective folders. - CMake configuration at the root for consistent builds. The following tree shows the high-level organization: .. code-block:: text GLOverlayUI/ ├── assets/ # Assets resources │ └── logo/ # Logo Emplacement folder │ └── # Images ├── src/ # C++ source files │ ├── renderer.C # OpenGL rendering logic (source) (UI-agnostic) │ ├── mainframe.C # wxWidget wrapper (source) │ ├── canvasdriver.C # wxGLCanvas wrapper (source) ├── include/ # C++ header files │ ├── renderer.H # OpenGL rendering logic (header) (UI-agnostic) │ ├── canvasdriver.H # wxGLCanvas wrapper (header) │ ├── mainframe.H # wxWidget wrapper (header) │ ├── GLOverlayUI_config.in.H # Generated Configuration (header) ├── CMakeLists.txt # Build configuration ├── config/ # Folder configuration │ └── GLOverlayUI_config.in # Basic Config of GLOverlayUI application ├── docs/ # Documentation folder │ ├── conf.py # Sphinx configuration │ ├── index.rst # This file (Sphinx entry point) │ ├── doc.cmake # Doxygen + Sphinx integration │ ├── autodocs.cmake # cmake file to automate the documentation build │ ├── make.bat # Generated by sphinx-quickstart │ ├── Doxyfile # Doxyfile Generated by Doxygen │ ├── Makefile # Generated by sphinx-quickstart ├── GLOverlayUI_app.C # Main application window and UI logic ├── requirements.txt # Python dependencies for documentation └── README.md # Project overview Architecture Overview --------------------- The application is organized into **three decoupled components**: .. list-table:: :widths: 20 50 20 :header-rows: 1 * - Component - Description - Depends on wxWidgets * - ``renderer`` - Core OpenGL rendering logic - ❌ * - ``canvasdriver`` - ``canvasdriver`` wrapper, handles UI integration - ✅ * - ``MainFrame`` - Main UI (panel, slider, checkbox) - ✅ This clean separation enables easy testing and reusability of the rendering logic in other contexts.