Subversion Repositories seema-scanner

Rev

Rev 25 | Rev 30 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
9 jakw 1
 
2
#ifndef SMCaptureWorker_H
3
#define SMCaptureWorker_H
4
 
23 jakw 5
#include "SMTypes.h"
6
#include "ProjectorOpenGL.h"
7
#include "Camera.h"
8
#include "RotationStage.h"
27 jakw 9
#include "Codec.h"
23 jakw 10
 
9 jakw 11
#include <QObject>
12
#include <opencv2/opencv.hpp>
13
 
23 jakw 14
enum mode {
15
    modeIdle,
27 jakw 16
    modeSMCalibrationSet,
23 jakw 17
    modeFrameSequence
18
};
9 jakw 19
 
20
class SMCaptureWorker : public QObject{
21
    Q_OBJECT
22
 
23
    public:
23 jakw 24
        SMCaptureWorker(){}
9 jakw 25
        ~SMCaptureWorker();
26
    public slots:
27
        void setup();
28
        void doWork();
23 jakw 29
        void rotateTo(float angle);
30
        void acquireCalibrationSet(float angle);
31
        void acquireCalibrationSets(std::vector<float> angles);
32
        void acquireFrameSequence(float angle);
33
        void acquireFrameSequences(std::vector<float> angles);
34
        void abort();
35
        void stopWork();
9 jakw 36
    signals:
37
        void newFrame(unsigned int camID, cv::Mat frame);
27 jakw 38
        void newCalibrationSet(SMCalibrationSet frameSet);
39
        void newFrameSequence(SMFrameSequence frameSequence);
23 jakw 40
        void busy();
41
        void done();
9 jakw 42
        void finished();
43
    private:
23 jakw 44
        bool working;
27 jakw 45
        int delay;
46
        QString codec;
23 jakw 47
        Projector* projector;
9 jakw 48
        Camera* camera0;
49
        Camera* camera1;
23 jakw 50
        RotationStage* rotationStage;
27 jakw 51
        Encoder* encoder;
9 jakw 52
};
53
 
54
#endif // SMCaptureWorker_H