Subversion Repositories seema-scanner

Rev

Rev 27 | Rev 41 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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