CTL  0.6.1
Computed Tomography Library
tubulargantry.h
Go to the documentation of this file.
1 #ifndef CTL_TUBULARGANTRY_H
2 #define CTL_TUBULARGANTRY_H
3 
4 #include "abstractgantry.h"
5 
6 namespace CTL {
27 {
29 
30  // implementation of abstract interface
31  protected: mat::Location nominalDetectorLocation() const override;
32  protected: mat::Location nominalSourceLocation() const override;
33 
34 public:
35  TubularGantry(double sourceToDetectorDistance,
36  double sourceToIsoCenterDistance,
37  double rotationAngle = 0.0,
38  double pitchPosition = 0.0,
39  double tiltAngle = 0.0,
40  const QString& name = defaultName());
41  TubularGantry(double sourceToDetectorDistance,
42  double sourceToIsoCenterDistance,
43  const QString& name);
44 
45 
46  // virtual methods
47  SystemComponent* clone() const override;
48  QString info() const override;
49  void fromVariant(const QVariant& variant) override; // de-serialization
50  QVariant toVariant() const override; // serialization
51 
52  // getter methods
53  double pitchPosition() const;
54  double rotationAngle() const;
55  double tiltAngle() const;
56 
57  // setter methods
58  void setPitchPosition(double position);
59  void setRotationAngle(double angle);
60  void setTiltAngle(double angle);
61 
62  // static methods
63  static QString defaultName();
64 
65 protected:
68  double _rotationAngle;
69  double _pitchPosition;
70  double _tiltAngle;
71 
72 private:
73  TubularGantry() = default;
74 
75  // methods
77  mat::Location sourceLocationTG() const;
78  mat::Location detectorLocationTG() const;
83 };
84 
85 } // namespace CTL
86 
89 #endif // CTL_TUBULARGANTRY_H
mat::Location sourceLocationTG() const
Definition: tubulargantry.cpp:108
void setRotationAngle(double angle)
Definition: tubulargantry.cpp:309
SystemComponent * clone() const override
Definition: tubulargantry.cpp:299
void setPitchPosition(double position)
Definition: tubulargantry.cpp:304
double pitchPosition() const
Returns the table pitch position. Position value is specified in millimeters.
Definition: tubulargantry.cpp:286
double _pitchPosition
Table pitch position (in mm).
Definition: tubulargantry.h:69
Matrix3x3 totalGantryRotation() const
Definition: tubulargantry.cpp:210
QString info() const override
Definition: tubulargantry.cpp:229
QVariant toVariant() const override
Definition: tubulargantry.cpp:270
Matrix3x3 detectorRotationTG() const
Definition: tubulargantry.cpp:194
double _rotationAngle
Gantry rotation angle (in rad).
Definition: tubulargantry.h:68
double _sourceToDetectorDistance
Distance between source and detector (in mm).
Definition: tubulargantry.h:66
const QString & name() const
Definition: systemcomponent.cpp:42
Vector3x1 sourcePositionTG() const
Definition: tubulargantry.cpp:137
double tiltAngle() const
Returns the gantry tilt angle (in radians).
Definition: tubulargantry.cpp:296
double _sourceToIsoCenterDistance
Distance between source and iso center (in mm).
Definition: tubulargantry.h:67
Base class for gantry components.
Definition: abstractgantry.h:65
Vector3x1 detectorPositionTG() const
Definition: tubulargantry.cpp:175
void fromVariant(const QVariant &variant) override
Definition: tubulargantry.cpp:257
Base class for all system components.
Definition: systemcomponent.h:53
mat::Location nominalSourceLocation() const override
Definition: tubulargantry.cpp:100
#define CTL_TYPE_ID(newIndex)
Definition: serializationinterface.h:189
double rotationAngle() const
Returns the gantry rotation angle (in radians).
Definition: tubulargantry.cpp:291
static QString defaultName()
Definition: tubulargantry.cpp:249
void setTiltAngle(double angle)
Definition: tubulargantry.cpp:314
double _tiltAngle
Gantry tilt angle (in rad).
Definition: tubulargantry.h:70
mat::Location nominalDetectorLocation() const override
Definition: tubulargantry.cpp:71
mat::Location detectorLocationTG() const
Definition: tubulargantry.cpp:119
Matrix3x3 sourceRotationTG() const
Definition: tubulargantry.cpp:156
Specialized sub-class of AbstractGantry to represent systems with tube gantries.
Definition: tubulargantry.h:26