Архітектура Rayforge
Цей документ надає високорівневий огляд архітектури Rayforge, пояснюючи, як основні компоненти пов'язані між собою. Для глибокого вивчення конкретних областей, будь ласка, звертайтеся до пов'язаних документів.
Зміст
Багатошарова архітектура додатку
Додаток структурований у логічні шари, розділяючи користувацький інтерфейс, логіку додатку та основні сервіси. Це сприяє чистому розділенню відповідальності та уточнює потік керування
- Шар UI (Вигляд): Містить всі елементи, орієнтовані на користувача.
Workbench- основна область полотна, яка містить 2D та 3D вигляди. - Шар редактора/контролера:
DocEditorдіє як центральний контролер, реагуючи на події UI та маніпулюючи основними моделями. - Шар ядра / сервісів: Надає фундаментальні сервіси та стан.
Core Modelsпредставляють документ,Taskerкерує фоновими завданнями,Machineобробляє комунікацію з пристроєм, аCameraкерує видовими портами.
Архітектура коду
Rayforge - це GTK4/Libadwaita додаток з модульною, конвеєрною архітектурою.
rayforge/core/: Модель документа та обробка геометрії.rayforge/pipeline/: Основний обробний конвеєр для генерації машинних операцій з моделі документа.rayforge/machine/: Шар інтерфейсу обладнання, включаючи драйвери пристроїв, транспортні протоколи та моделі машин.rayforge/doceditor/: Головний контролер редактора документа та його UI.rayforge/workbench/: 2D/3D полотно та системи візуалізації.rayforge/image/: Імпортери для різних форматів файлів (SVG, DXF тощо.).rayforge/shared/: Загальні утиліти, включаючиtaskerдля керування фоновими завданнями.
Архітектура моделі документа
Модель документа - це ієрархічне дерево об'єктів, засноване на
Патерні Composite. Ця структура представляє весь проект користувача,
від кореневого об'єкта Doc до окремих WorkPiece. Вона розроблена щоб бути
реактивною та серіалізованою.
Див. Архітектура моделі документа для деталей
Архітектура конвеєра
Конвеєр конвертує модель документа в машинний G-code. Він
працює асинхронно у фоні та використовує систему Artifact
з спільною пам'яттю для високоефективної передачі даних між процесами. Конвеєр
складається зі стадій: Модифікатори → Продюсери → Трансформери → Енкодери.