CTL  0.6.1
Computed Tomography Library
acquisitionsetup.h
1 #ifndef CTL_ACQUISITIONSETUP_H
2 #define CTL_ACQUISITIONSETUP_H
3 
4 #include "abstractpreparestep.h"
5 #include "simplectsystem.h"
6 
7 namespace CTL {
8 
176 {
177 public:
178  typedef std::shared_ptr<const AbstractPrepareStep> PrepareStep;
179 
180  class View;
181 
182  AcquisitionSetup() = default;
185  AcquisitionSetup(std::unique_ptr<CTSystem> system, uint nbViews = 0);
186  AcquisitionSetup(std::unique_ptr<SimpleCTSystem> system, uint nbViews = 0);
188 
189  // cp/mv cstor/assignment
190  AcquisitionSetup(const AcquisitionSetup& other);
192  AcquisitionSetup(AcquisitionSetup&& other) = default;
193  AcquisitionSetup& operator=(AcquisitionSetup&& other) = default;
194 
195  void addView(View view);
196  void applyPreparationProtocol(const AbstractPreparationProtocol& preparation);
197  bool isValid() const;
198  uint nbViews() const;
199  void prepareView(uint viewNb);
200  void removeAllPrepareSteps(bool keepTimeStamps = true);
201  void removeAllPrepareStepsOfType(int prepareStepType);
202  void removeAllViews();
203  bool resetSystem(const CTSystem& system);
204  bool resetSystem(CTSystem&& system);
205  void setNbViews(uint nbViews);
206  AcquisitionSetup subset(const std::vector<uint>& viewIds) const;
208  const SimpleCTSystem* system() const;
209  View& view(uint viewNb);
210  const View& view(uint viewNb) const;
211  std::vector<View>& views();
212  const std::vector<View>& views() const;
213 
214  void fromVariant(const QVariant& variant) override; // de-serialization
215  QVariant toVariant() const override; // serialization
216 
217 private:
218  std::unique_ptr<SimpleCTSystem> _system;
219  std::vector<View> _views;
220 };
221 
228 {
229 public:
230  // ctors
231  View() = default;
232  explicit View(double time);
233 
234  // time
235  void setTimeStamp(double timeStamp);
236  double timeStamp() const;
237 
238  // prepare steps
239  void addPrepareStep(PrepareStep step);
240  void clearPrepareSteps();
241  size_t nbPrepareSteps() const;
242  const std::vector<PrepareStep>& prepareSteps() const;
243  const PrepareStep& prepareStep(int prepareStepType, bool searchFromBack = true) const;
244  int indexOfPrepareStep(int prepareStepType, bool searchFromBack = true) const;
245  bool hasPrepareStep(int prepareStepType) const;
246  bool replacePrepareStep(int index, PrepareStep newPrepareStep);
247  bool replacePrepareStep(PrepareStep newPrepareStep, bool searchFromBack = true);
248  void removeAllPrepareSteps(int prepareStepType);
249  void removeLastPrepareStep();
250  void removePrepareStep(int prepareStepType, bool searchFromBack = true);
251 
252  void fromVariant(const QVariant& variant) override; // de-serialization
253  QVariant toVariant() const override; // serialization
254 
255 private:
256  PrepareStep& prepareStep(int prepareStepType, bool searchFromBack);
257 
258  double _timeStamp;
259  std::vector<PrepareStep> _prepareSteps;
260 };
261 
262 } // namespace CTL
263 
264 #endif // CTL_ACQUISITIONSETUP_H
void setTimeStamp(double timeStamp)
Definition: acquisitionsetup.cpp:18
Base class for entire preparation protocols (i.e. for multiple views) that can be used in combination...
Definition: abstractpreparestep.h:84
void addView(View view)
Definition: acquisitionsetup.cpp:345
std::vector< PrepareStep > _prepareSteps
List of prepare steps to configure the view.
Definition: acquisitionsetup.h:259
SimpleCTSystem * system()
Definition: acquisitionsetup.cpp:591
std::vector< View > & views()
Definition: acquisitionsetup.cpp:625
void addPrepareStep(PrepareStep step)
Definition: acquisitionsetup.cpp:24
Holds a CTSystem together with the information about the system settings for all views from which pro...
Definition: acquisitionsetup.h:175
void removeAllPrepareStepsOfType(int prepareStepType)
Removes all prepare steps of type prepareStepType from all views of this setup.
Definition: acquisitionsetup.cpp:467
double timeStamp() const
Definition: acquisitionsetup.cpp:36
void removeAllPrepareSteps(int prepareStepType)
Definition: acquisitionsetup.cpp:178
Specify an interface for de-/serialization from/to QVariants.
Definition: serializationinterface.h:17
QVariant toVariant() const override
Definition: acquisitionsetup.cpp:242
bool replacePrepareStep(int index, PrepareStep newPrepareStep)
Definition: acquisitionsetup.cpp:134
The CTSystem class manages the list of all components of a system.
Definition: ctsystem.h:84
const std::vector< PrepareStep > & prepareSteps() const
Definition: acquisitionsetup.cpp:46
int indexOfPrepareStep(int prepareStepType, bool searchFromBack=true) const
Definition: acquisitionsetup.cpp:98
std::unique_ptr< SimpleCTSystem > _system
CTSystem used for the acquisition.
Definition: acquisitionsetup.h:218
std::shared_ptr< const AbstractPrepareStep > PrepareStep
Alias for shared_ptr to const AbstractPrepareStep.
Definition: acquisitionsetup.h:178
bool resetSystem(const CTSystem &system)
Definition: acquisitionsetup.cpp:484
void removeAllPrepareSteps(bool keepTimeStamps=true)
Definition: acquisitionsetup.cpp:449
void fromVariant(const QVariant &variant) override
Definition: acquisitionsetup.cpp:226
unsigned int uint
Qt style alias for unsigned int.
Definition: modulelayout.h:6
void prepareView(uint viewNb)
Definition: acquisitionsetup.cpp:407
bool isValid() const
Definition: acquisitionsetup.cpp:524
void removeLastPrepareStep()
Definition: acquisitionsetup.cpp:193
void clearPrepareSteps()
Definition: acquisitionsetup.cpp:221
const PrepareStep & prepareStep(int prepareStepType, bool searchFromBack=true) const
Definition: acquisitionsetup.cpp:64
void setNbViews(uint nbViews)
Definition: acquisitionsetup.cpp:554
uint nbViews() const
Definition: acquisitionsetup.cpp:543
AcquisitionSetup & operator=(const AcquisitionSetup &other)
Definition: acquisitionsetup.cpp:335
QVariant toVariant() const override
Definition: acquisitionsetup.cpp:655
void applyPreparationProtocol(const AbstractPreparationProtocol &preparation)
Definition: acquisitionsetup.cpp:360
bool hasPrepareStep(int prepareStepType) const
Returns true if this view has any prepare step of type prepareStepType; returns false otherwise.
Definition: acquisitionsetup.cpp:121
double _timeStamp
Time stamp of the view.
Definition: acquisitionsetup.h:258
void fromVariant(const QVariant &variant) override
Definition: acquisitionsetup.cpp:635
void removeAllViews()
Definition: acquisitionsetup.cpp:476
The SimpleCTSystem class is a specialized sub-class of CTSystem for simple systems (i....
Definition: simplectsystem.h:95
size_t nbPrepareSteps() const
Definition: acquisitionsetup.cpp:41
Holds the information about the system settings for a particular view.
Definition: acquisitionsetup.h:227
std::vector< View > _views
List of all views of the acquisition.
Definition: acquisitionsetup.h:219
View & view(uint viewNb)
Definition: acquisitionsetup.cpp:613
void removePrepareStep(int prepareStepType, bool searchFromBack=true)
Definition: acquisitionsetup.cpp:207