Arquitetura do Rayforge
Este documento fornece uma visão geral de alto nível da arquitetura do Rayforge, explicando como os principais componentes se relacionam entre si. Para mergulhos profundos em áreas específicas, consulte os documentos vinculados.
Índice
- Arquitetura de Aplicação em Camadas
- Arquitetura de Código
- Arquitetura do Modelo de Documento
- Arquitetura do Pipeline
Arquitetura de Aplicação em Camadas
A aplicação é estruturada em camadas lógicas, separando a interface de usuário, lógica de aplicação e serviços principais. Isso promove uma separação limpa de responsabilidades e esclarece o fluxo de controle
- Camada UI (Visualização): Contém todos os elementos voltados ao usuário. O
Workbenché a área principal da tela que hospeda as visualizações 2D e 3D. - Camada Editor/Controlador: O
DocEditoratua como o controlador central, respondendo a eventos de UI e manipulando os modelos principais. - Camada Principal / Serviços: Fornece serviços fundamentais e estado.
Modelos Principaisrepresentam o documento,Taskergerencia trabalhos em segundo plano,Máquinalida com comunicação de dispositivo, eCâmeragerencia viewports.
Arquitetura de Código
O Rayforge é uma aplicação GTK4/Libadwaita com uma arquitetura modular baseada em pipeline.
rayforge/core/: Modelo de documento e manipulação de geometria.rayforge/pipeline/: O pipeline de processamento principal para gerar operações de máquina a partir do modelo de documento.rayforge/machine/: Camada de interface de hardware, incluindo drivers de dispositivo, protocolos de transporte e modelos de máquina.rayforge/doceditor/: O controlador principal do editor de documento e sua UI.rayforge/workbench/: A tela 2D/3D e sistemas de visualização.rayforge/image/: Importadores para vários formatos de arquivo (SVG, DXF, etc.).rayforge/shared/: Utilitários comuns, incluindo otaskerpara gerenciamento de trabalhos em segundo plano.
Arquitetura do Modelo de Documento
O modelo de documento é uma árvore hierárquica de objetos baseada no
Padrão Composite. Esta estrutura representa todo o projeto do usuário,
do objeto Doc raiz até os WorkPieces individuais. É projetado para ser
reativo e serializável.
Veja Arquitetura do Modelo de Documento para detalhes
Arquitetura do Pipeline
O pipeline converte o modelo de documento em G-code executável pela máquina. Ele
roda de forma assíncrona em segundo plano e usa um sistema de Artifact
de memória compartilhada para transferência de dados de alto desempenho entre processos. O pipeline é
composto de estágios: Modificadores → Produtores → Transformadores → Codificadores.