CTL  0.6.1
Computed Tomography Library
ctsystembuilder.h
1 #ifndef CTL_CTSYSTEMBUILDER_H
2 #define CTL_CTSYSTEMBUILDER_H
3 
4 #include "components/allgenerictypes.h"
5 #include "acquisition/ctsystem.h"
6 
7 namespace CTL {
8 
10 {
11  // abstract interface (must-haves of a complete CTSystem)
12  public:virtual AbstractDetector* detector() const = 0;
13  public:virtual AbstractGantry* gantry() const = 0;
14  public:virtual AbstractSource* source() const = 0;
15 
16 public:
17  virtual ~AbstractCTSystemBlueprint() = default;
18 
19  // optionally reimplementable
20  virtual QString systemName() const { return QStringLiteral("Blueprinted system"); }
21  virtual std::vector<AbstractBeamModifier*> modifiers() const { return { }; }
22 
23 protected:
24  AbstractCTSystemBlueprint() = default;
29 };
30 
32 {
33 public:
34  static CTSystem createFromBlueprint(const AbstractCTSystemBlueprint& systemBlueprint);
35  static CTSystem createFromJSONFile(const QString& fileName);
36 };
37 
38 Q_DECL_DEPRECATED_X("Class has been renamed. Please consider the new spelling 'CTSystemBuilder'.")
40 
41 } // namespace CTL
42 
43 #endif // CTL_CTSYSTEMBUILDER_H
static CTSystem createFromJSONFile(const QString &fileName)
Definition: ctsystembuilder.cpp:32
AbstractCTSystemBlueprint & operator=(const AbstractCTSystemBlueprint &)=default
virtual AbstractGantry * gantry() const =0
virtual QString systemName() const
Definition: ctsystembuilder.h:20
virtual AbstractDetector * detector() const =0
static CTSystem createFromBlueprint(const AbstractCTSystemBlueprint &systemBlueprint)
Definition: ctsystembuilder.cpp:10
Definition: ctsystembuilder.h:31
Base class for gantry components.
Definition: abstractgantry.h:65
Base class for detector components.
Definition: abstractdetector.h:54
The CTSystem class manages the list of all components of a system.
Definition: ctsystem.h:84
virtual ~AbstractCTSystemBlueprint()=default
virtual std::vector< AbstractBeamModifier * > modifiers() const
Definition: ctsystembuilder.h:21
virtual AbstractSource * source() const =0
Base class for source components.
Definition: abstractsource.h:68
Definition: ctsystembuilder.h:9