blob: e09197ea4a4c4ea57b7ce7dd52cd40d98a4b2696 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#pragma once
// cpp
#include <memory>
#include <vector>
// TODO: remove this include
#include "calibration.h"
class IProtocol;
class ICamera;
class IScanner
{
public:
// TODO: get rid of constructor or rename class
explicit IScanner(std::shared_ptr<ICamera> camera,
std::vector<std::shared_ptr<IProtocol>> protocols);
virtual ~IScanner() = default;
public:
virtual bool startAllProtocols() = 0;
virtual void stopAllProtocols() = 0;
// TODO: think about more flexible calibration interface
virtual CalibrationTablePtr calibrationTableX() const = 0;
virtual CalibrationTablePtr calibrationTableZ() const = 0;
// TODO: add nullptr check everywhere where this function is used
std::shared_ptr<ICamera> camera() const;
protected:
std::shared_ptr<ICamera> m_camera;
std::vector<std::shared_ptr<IProtocol>> m_protocols;
};
|