Реструктуризация проекта и генератор синтетических датасетов эхолота.
Перенесены backend/frontend/desktop/engine, добавлены вкладки конструктора сцен и генератора датасета с параметрами лучей и длины сетки рельефа, обновлены API и Docker-сборка. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,4 +1,19 @@
|
||||
# DotsToSirface (Qt 5.11)
|
||||
# DotsToSurface (Qt 5.11)
|
||||
|
||||
## Структура репозитория
|
||||
|
||||
| Слой | Папка | Назначение |
|
||||
|------|-------|------------|
|
||||
| **Engine** | `src/engine/` | C++ пайплайн, PCL, CLI `--cli` |
|
||||
| **Backend** | `backend/` | FastAPI — HTTP-обёртка над CLI |
|
||||
| **Frontend (Web)** | `frontend/web/` | Vue 3 dashboard + Three.js |
|
||||
| **Frontend (Desktop)** | `src/desktop/` | Qt QML dashboard |
|
||||
|
||||
Подробнее: [ARCHITECTURE.md](ARCHITECTURE.md)
|
||||
|
||||
Сборка Web-версии полностью воспроизводится в Docker (`docker compose up --build`). В git — исходники; артефакты (`build/`, `frontend/web/dist/`) не коммитятся.
|
||||
|
||||
---
|
||||
|
||||
Демонстрационная программа на Qt 5.11 C++, которая:
|
||||
- принимает массив 3D-точек `QVector<Point3f>`;
|
||||
@@ -7,7 +22,7 @@
|
||||
|
||||
## Вход/выход API
|
||||
|
||||
`src/algorithms/reconstruction/surface_reconstruction.h`:
|
||||
`src/engine/algorithms/reconstruction/surface_reconstruction.h`:
|
||||
|
||||
- `struct Point3f { float x, y, z; };`
|
||||
- `struct Triangle { int i0, i1, i2; };`
|
||||
@@ -38,7 +53,7 @@
|
||||
## Этап 1 (backend-first, без CLI)
|
||||
|
||||
- Парсинг и применение `defaults` параметров стадий вынесены из UI в `core`:
|
||||
`src/core/pipeline_stage_defaults.h` и `src/core/pipeline_stage_defaults.cpp`.
|
||||
`src/engine/core/pipeline_stage_defaults.h` и `src/engine/core/pipeline_stage_defaults.cpp`.
|
||||
- `MainWindow` больше не содержит backend-логику разбора параметров, а вызывает
|
||||
`core::applyStageDefaultsToConfig(...)`.
|
||||
- Это позволяет использовать один и тот же backend API из GUI сейчас и из будущего
|
||||
@@ -78,10 +93,10 @@
|
||||
Рабочий поток для этого проекта на Windows: собирать и запускать через WSL.
|
||||
|
||||
```bash
|
||||
cd /mnt/d/yakupov/Projects/DotsToSirface/build-wsl
|
||||
qmake ../DotsToSirface.pro 'DEFINES+=PCL_ENABLED'
|
||||
cd /mnt/d/yakupov/Projects/DotsToSurface/build-wsl
|
||||
qmake ../DotsToSurface.pro 'DEFINES+=PCL_ENABLED'
|
||||
make -j4
|
||||
LIBGL_ALWAYS_SOFTWARE=1 QT_QPA_PLATFORM=xcb ./DotsToSirface
|
||||
LIBGL_ALWAYS_SOFTWARE=1 QT_QPA_PLATFORM=xcb ./DotsToSurface
|
||||
```
|
||||
|
||||
Примечания:
|
||||
@@ -92,22 +107,22 @@ LIBGL_ALWAYS_SOFTWARE=1 QT_QPA_PLATFORM=xcb ./DotsToSirface
|
||||
Перезапуск после правок:
|
||||
|
||||
```bash
|
||||
pkill -f '^./DotsToSirface$' || true
|
||||
cd /mnt/d/yakupov/Projects/DotsToSirface/build-wsl
|
||||
qmake ../DotsToSirface.pro 'DEFINES+=PCL_ENABLED'
|
||||
pkill -f '^./DotsToSurface$' || true
|
||||
cd /mnt/d/yakupov/Projects/DotsToSurface/build-wsl
|
||||
qmake ../DotsToSurface.pro 'DEFINES+=PCL_ENABLED'
|
||||
make -j4
|
||||
LIBGL_ALWAYS_SOFTWARE=1 QT_QPA_PLATFORM=xcb ./DotsToSirface
|
||||
LIBGL_ALWAYS_SOFTWARE=1 QT_QPA_PLATFORM=xcb ./DotsToSurface
|
||||
```
|
||||
|
||||
## Smoke tests (отдельный runner)
|
||||
|
||||
Для быстрой проверки пайплайна без GUI добавлен отдельный консольный таргет:
|
||||
`DotsToSirfaceTests.pro`.
|
||||
`DotsToSurfaceTests.pro`.
|
||||
|
||||
```bash
|
||||
qmake DotsToSirfaceTests.pro
|
||||
qmake DotsToSurfaceTests.pro
|
||||
make
|
||||
./release/DotsToSirfaceTests.exe
|
||||
./release/DotsToSurfaceTests.exe
|
||||
```
|
||||
|
||||
При успешном запуске runner печатает `Smoke tests passed.` и завершаетcя с кодом `0`.
|
||||
@@ -119,10 +134,10 @@ make
|
||||
Пример:
|
||||
|
||||
```bash
|
||||
cd /mnt/d/yakupov/Projects/DotsToSirface/build-wsl
|
||||
qmake ../DotsToSirface.pro 'DEFINES+=PCL_ENABLED'
|
||||
cd /mnt/d/yakupov/Projects/DotsToSurface/build-wsl
|
||||
qmake ../DotsToSurface.pro 'DEFINES+=PCL_ENABLED'
|
||||
make -j4
|
||||
./DotsToSirface --cli \
|
||||
./DotsToSurface --cli \
|
||||
--input /mnt/d/path/to/cloud.xyz \
|
||||
--profile desktop_debug \
|
||||
--preprocess pcl_remove_nan,pcl_voxel_grid,pcl_statistical_outlier \
|
||||
@@ -155,7 +170,7 @@ CLI печатает краткую сводку по метрикам (`input`,
|
||||
Запуск:
|
||||
|
||||
```bash
|
||||
./DotsToSirface --cli --input /mnt/d/path/to/cloud.xyz --config-json /mnt/d/path/to/pipeline_config.json
|
||||
./DotsToSurface --cli --input /mnt/d/path/to/cloud.xyz --config-json /mnt/d/path/to/pipeline_config.json
|
||||
```
|
||||
|
||||
Если одновременно переданы `--config-json` и обычные CLI-флаги (`--preprocess`, `--reconstruction`, `--stage-default`), флаги командной строки имеют приоритет.
|
||||
@@ -193,7 +208,7 @@ CLI печатает краткую сводку по метрикам (`input`,
|
||||
Запуск:
|
||||
|
||||
```bash
|
||||
./DotsToSirface --cli \
|
||||
./DotsToSurface --cli \
|
||||
--input /mnt/d/path/to/cloud.xyz \
|
||||
--autotune-config /mnt/d/path/to/autotune_config.json
|
||||
```
|
||||
@@ -208,13 +223,12 @@ CLI печатает краткую сводку по метрикам (`input`,
|
||||
|
||||
Для запуска пайплайна с PCL в изолированной среде (без конфликтов с `libpq` на хосте) добавлены:
|
||||
|
||||
- `docker/Dockerfile` — сборка `DotsToSirface` с `PCL_ENABLED` + Vue 3 dashboard;
|
||||
- `docker/Dockerfile` — сборка `DotsToSurface` с `PCL_ENABLED` + Vue 3 dashboard;
|
||||
- `docker/docker-compose.yml`;
|
||||
- `api/main.py` — HTTP API (`/api/run`, `/api/presets`, `/api/validate-config`, …);
|
||||
- `web-vue/` — Vue 3 + Pinia + Three.js (полный dashboard, паритет с Qt);
|
||||
- `web/` — legacy MVP (fallback, если Vue `dist` не собран).
|
||||
- `backend/main.py` — HTTP API (`/api/run`, `/api/presets`, `/api/validate-config`, …);
|
||||
- `frontend/web/` — Vue 3 + Pinia + Three.js (полный dashboard, паритет с Qt);
|
||||
|
||||
**Qt desktop (`./DotsToSirface`) сохраняется** как локальный fallback без Docker.
|
||||
**Qt desktop (`./DotsToSurface`) сохраняется** как локальный fallback без Docker.
|
||||
|
||||
### Быстрый старт
|
||||
|
||||
@@ -228,7 +242,7 @@ docker compose up --build
|
||||
### Локальная разработка frontend
|
||||
|
||||
```bash
|
||||
cd web-vue
|
||||
cd frontend/web
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user