CTL  0.6.1
Computed Tomography Library
carmgantry.h
Go to the documentation of this file.
1 #ifndef CTL_CARMGANTRY_H
2 #define CTL_CARMGANTRY_H
3 
4 #include "abstractgantry.h"
5 
6 namespace CTL {
23 class CarmGantry : public AbstractGantry
24 {
26 
27  // implementation of abstract interface
28  protected: mat::Location nominalDetectorLocation() const override;
29  protected: mat::Location nominalSourceLocation() const override;
30 
31 public:
32  CarmGantry(double cArmSpan = 1000.0, const QString& name = defaultName());
33 
34  // virtual methods
35  SystemComponent* clone() const override;
36  QString info() const override;
37  void fromVariant(const QVariant& variant) override; // de-serialization
38  QVariant toVariant() const override; // serialization
39 
40  // getter methods
41  const mat::Location& location() const;
42  double cArmSpan() const;
43 
44  // setter methods
45  void setLocation(const mat::Location& location);
46  void setCarmSpan(double span);
47 
48  // static methods
49  static QString defaultName();
50 
51 protected:
52  double _cArmSpan;
53  mat::Location _location;
54 
55 private:
56  // helper methods
57  mat::Location detectorLocationCA() const;
60 };
61 
62 } // namespace CTL
63 
66 #endif // CTL_CARMGANTRY_H
Vector3x1 detectorPositionCA() const
Definition: carmgantry.cpp:48
static QString defaultName()
Definition: carmgantry.cpp:114
QVariant toVariant() const override
Definition: carmgantry.cpp:132
Matrix3x3 detectorRotationCA() const
Definition: carmgantry.cpp:68
mat::Location nominalSourceLocation() const override
Definition: carmgantry.cpp:34
mat::Location detectorLocationCA() const
Definition: carmgantry.cpp:78
const QString & name() const
Definition: systemcomponent.cpp:42
void setLocation(const mat::Location &location)
Definition: carmgantry.cpp:160
Base class for gantry components.
Definition: abstractgantry.h:65
void fromVariant(const QVariant &variant) override
Definition: carmgantry.cpp:122
mat::Location _location
Location of the source (rotation is oriented towards detector).
Definition: carmgantry.h:53
Base class for all system components.
Definition: systemcomponent.h:53
const mat::Location & location() const
Definition: carmgantry.cpp:149
#define CTL_TYPE_ID(newIndex)
Definition: serializationinterface.h:189
SystemComponent * clone() const override
Definition: carmgantry.cpp:143
mat::Location nominalDetectorLocation() const override
Definition: carmgantry.cpp:24
void setCarmSpan(double span)
Definition: carmgantry.cpp:165
Specialized sub-class of AbstractGantry to represent systems using a C-arm mounting for source and de...
Definition: carmgantry.h:23
QString info() const override
Definition: carmgantry.cpp:91
double _cArmSpan
Span of the C-arm, i.e. distance between source and detector (in mm).
Definition: carmgantry.h:52
double cArmSpan() const
Definition: carmgantry.cpp:154