CTL  0.6.1
Computed Tomography Library
genericgantry.h
Go to the documentation of this file.
1 #ifndef CTL_GENERICGANTRY_H
2 #define CTL_GENERICGANTRY_H
3 
4 #include "abstractgantry.h"
5 #include "mat/matrix_utils.h"
6 
7 namespace CTL {
8 
26 {
28 
29  // implementation of abstract interface
30  protected: mat::Location nominalDetectorLocation() const override;
31  protected: mat::Location nominalSourceLocation() const override;
32 
33 public:
34  GenericGantry(const QString& name = defaultName());
35  GenericGantry(const mat::Location& sourceLocation,
36  const mat::Location& detectorLocation,
37  const QString& name = defaultName());
42  const QString& name = defaultName());
43 
44  // virtual methods
45  SystemComponent* clone() const override;
46  QString info() const override;
47  void fromVariant(const QVariant& variant) override; // de-serialization
48  QVariant toVariant() const override; // serialization
49 
50  // setter methods
51  void setDetectorLocation(const mat::Location& location);
52  void setSourceLocation(const mat::Location& location);
53 
54  // convenience setter
59 
60  // static methods
61  static QString defaultName();
62  // converter factory
63  static std::unique_ptr<GenericGantry> fromOther(const AbstractGantry& other);
64 
65 private:
66  mat::Location _detectorLocation;
67  mat::Location _sourceLocation;
68 };
69 
70 } // namespace CTL
71 
75 #endif // CTL_GENERICGANTRY_H
Vector3x1 detectorPosition() const
Definition: abstractgantry.h:225
void setSourcePosition(const Vector3x1 &sourcePosition)
Definition: genericgantry.cpp:196
void setDetectorLocation(const mat::Location &location)
Definition: genericgantry.cpp:158
static QString defaultName()
Definition: genericgantry.cpp:91
mat::Location nominalSourceLocation() const override
Definition: genericgantry.cpp:152
mat::Location sourceLocation() const
Definition: abstractgantry.h:148
mat::Location _detectorLocation
Location of the detector component.
Definition: genericgantry.h:66
void setDetectorPosition(const Vector3x1 &detectorPosition)
Definition: genericgantry.cpp:174
Matrix3x3 sourceRotation() const
Definition: abstractgantry.h:182
const QString & name() const
Definition: systemcomponent.cpp:42
mat::Location nominalDetectorLocation() const override
Definition: genericgantry.cpp:142
mat::Location detectorLocation() const
Definition: abstractgantry.h:204
Base class for gantry components.
Definition: abstractgantry.h:65
Vector3x1 sourcePosition() const
Definition: abstractgantry.h:164
Base class for all system components.
Definition: systemcomponent.h:53
QString info() const override
Definition: genericgantry.cpp:58
mat::Location _sourceLocation
Location of the source component.
Definition: genericgantry.h:67
void setDetectorRotation(const Matrix3x3 &detectorRotation)
Definition: genericgantry.cpp:186
#define CTL_TYPE_ID(newIndex)
Definition: serializationinterface.h:189
void setSourceRotation(const Matrix3x3 &sourceRotation)
Definition: genericgantry.cpp:209
SystemComponent * clone() const override
Definition: genericgantry.cpp:132
QVariant toVariant() const override
Definition: genericgantry.cpp:121
Matrix3x3 detectorRotation() const
Definition: abstractgantry.h:244
void setSourceLocation(const mat::Location &location)
Definition: genericgantry.cpp:167
Generic implementation of a gantry component.
Definition: genericgantry.h:25
void fromVariant(const QVariant &variant) override
Definition: genericgantry.cpp:111