/
klischa
/
AstraScanner2
Обзор
Документация
Войти
/
klischa
/
AstraScanner2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/controllers/CaptureSessionController.h
65 строк
2 KB
k k
refactor: capture subsystem overhaul
15 июл 2026, 11:17
15 июл 2026, 11:17
1123c30
Код
Авторство
О чём код?
#ifndef CAPTURESESSIONCONTROLLER_H #define CAPTURESESSIONCONTROLLER_H #include <QObject> #include "../project/ProjectManager.h" #include <QSharedPointer> #include <memory> #include <opencv2/core/mat.hpp> #include <pcl/point_cloud.h> #include <pcl/point_types.h> #include <Eigen/Dense> #include <Eigen/Geometry> class QThread; class CaptureWorker; class ProjectManager; class CaptureSessionController : public QObject { Q_OBJECT public: explicit CaptureSessionController(QObject *parent = nullptr); ~CaptureSessionController() override; void setProjectManager(ProjectManager *projectManager); bool isRunning() const { return m_captureThread != nullptr; } void start(bool enableCloudProcessing, float depthMin, float depthMax, bool colorCameraEnabled, bool neuralTrackingEnabled, bool useCudaForNeural, const std::string &modelPath = "models/pose_regressor.onnx"); bool stop(); void setCloudProcessingEnabled(bool enabled); signals: void frameCaptured(QSharedPointer<cv::Mat> color, QSharedPointer<cv::Mat> depth); void pointCloudReady(pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud); void error(const QString &message); void frameProcessed(int totalFrames); void warning(const QString &message); void finished(); void markersDetected(QSharedPointer<cv::Mat> markersImage); void poseUpdated(const Eigen::Affine3f& pose, float rotation_angle, bool reliable); void scanQualityUpdated(const QString &trackingText, int trackingLevel, const QString &alignmentText, int alignmentLevel, const QString &depthText, int depthLevel, const QString &driftText, int driftLevel); void scannerPoseForProject(const Eigen::Affine3f& pose); void trackingModeChangedForProject(TrackingMode mode); private: void createWorker(bool enableCloudProcessing, float depthMin, float depthMax, bool colorCameraEnabled); void initializeWorkerTracking(bool neuralTrackingEnabled, bool useCudaForNeural, const std::string &modelPath); void connectWorkerSignals(); void cleanupThread(); QThread *m_captureThread = nullptr; CaptureWorker *m_worker = nullptr; ProjectManager *m_projectManager = nullptr; }; #endif // CAPTURESESSIONCONTROLLER_H