Архітектура імпортера
Цей документ описує архітектуру системи імпорту файлів Rayforge, яка обробляє конвертацію різних форматів файлів (SVG, DXF, PNG, PDF тощо.) в модель документа Rayforge.
Зміст
Огляд
Система імпорту побудована навколо чотирифазного конвеєра, який трансформує сирі файлові дані у повністю позиціоновані об'єкти документа. Кожна фаза має специфічну відповідальність і виробляє чітко визначені структури даних.
Конвеєр імпорту
Фаза 1: Парсинг
Метод: Importer.parse()
Витягує геометричні факти з файлу, включаючи межі, деталі системи координат та інформацію про шари.
Вивід: ParsingResult
document_bounds: Загальний розмір полотна у Нативних координатахnative_unit_to_mm: Коефіцієнт конвертації в міліметриis_y_down: Прапорець орієнтації осі Ylayers: СписокLayerGeometryworld_frame_of_reference: Світові координати (мм, Y-Up)background_world_transform: Матриця для позиціонування фонуuntrimmed_document_bounds: Довідник для Y-інверсії
Система координат:
document_bounds: Нативні координати (специфічні для файлу)world_frame_of_reference: Світові координати (мм, Y-Up)
Фаза 2: Векторизація
Метод: Importer.vectorize()
Конвертує пропарсені дані у векторні об'єкти Geometry відповідно до
VectorizationSpec.
Вивід: VectorizationResult
geometries_by_layer: Векторна геометрія на шар (Нативні координати)source_parse_result: Посилання на оригінальний ParsingResultfills_by_layer: Опціональна геометрія заливки (імпортер ескізів)
Система координат: Нативні координати (специфічні для файлу)
Фаза 3: Компонування
Клас: NormalizationEngine
Розраховує матриці трансформації для відображення Нативних координат у Світові координати на основі наміру користувача.
Вивід: List[LayoutItem]
Кожен LayoutItem містить:
world_matrix: Нормалізована (0-1, Y-Up) → Світ (мм, Y-Up)normalization_matrix: Нативна → Нормалізована (0-1, Y-Up)crop_window: Підмножина оригінального файлу в Нативних координатахlayer_id,layer_name: Ідентифікація шару
Система координат:
- Вхід: Нативні координати
- Вихід: Світові координати (мм, Y-Up) через проміжний Нормалізований простір