CTL  0.6.1
Computed Tomography Library
genericdetector.h
Go to the documentation of this file.
1 #ifndef CTL_GENERICDETECTOR_H
2 #define CTL_GENERICDETECTOR_H
3 
4 #include "abstractdetector.h"
5 #include "mat/matrix_utils.h"
6 
7 namespace CTL {
23 {
25 
26  // implementation of abstract interface
27  public: QVector<ModuleLocation> moduleLocations() const override;
28 
29 public:
30  GenericDetector(const QSize& nbPixelPerModule,
31  uint nbModules,
32  const QString& name = defaultName());
33  GenericDetector(const QSize& nbPixelPerModule,
34  const QSizeF& pixelSize,
36  const QString& name = defaultName());
37 
38  // virtual methods
39  SystemComponent* clone() const override;
40  QString info() const override;
41  void fromVariant(const QVariant& variant) override; // de-serialization
42  QVariant toVariant() const override; // serialization
43 
44  // factories
45  std::unique_ptr<GenericDetector>
46  cloneWithOtherModuleLocations(QVector<ModuleLocation> moduleLocations) const;
47  // converter
48  static std::unique_ptr<GenericDetector> fromOther(const AbstractDetector& other);
49 
50  // setter methods
52  void setPixelSize(const QSizeF& size);
53  void setSkewAngle(double skewAngle);
54 
55  // static methods
56  static QString defaultName();
57 
58 
59 protected:
61 
62 private:
63  GenericDetector(const QString& name = defaultName());
64 };
65 
66 } // namespace CTL
67 
70 #endif // CTL_GENERICDETECTOR_H
static QString defaultName()
Definition: genericdetector.cpp:72
SystemComponent * clone() const override
Definition: genericdetector.cpp:141
QVariant toVariant() const override
Definition: genericdetector.cpp:98
const QSizeF & pixelSize() const
Definition: abstractdetector.h:149
const QSize & nbPixelPerModule() const
Definition: abstractdetector.h:136
mat::Location ModuleLocation
Definition: abstractdetector.h:60
const QString & name() const
Definition: systemcomponent.cpp:42
void setModuleLocations(QVector< ModuleLocation > moduleLocations)
Definition: genericdetector.cpp:158
Base class for detector components.
Definition: abstractdetector.h:54
Base class for all system components.
Definition: systemcomponent.h:53
void setSkewAngle(double skewAngle)
Definition: genericdetector.cpp:181
QVector< ModuleLocation > _moduleLocations
Vector of locations of all detector modules.
Definition: genericdetector.h:60
QVector< ModuleLocation > moduleLocations() const override
Definition: genericdetector.cpp:150
#define CTL_TYPE_ID(newIndex)
Definition: serializationinterface.h:189
unsigned int uint
Qt style alias for unsigned int.
Definition: modulelayout.h:6
QString info() const override
Definition: genericdetector.cpp:50
Generic implementation of a detector component.
Definition: genericdetector.h:22
void setPixelSize(const QSizeF &size)
Definition: genericdetector.cpp:170
void fromVariant(const QVariant &variant) override
Definition: genericdetector.cpp:80