CTL  0.6.1
Computed Tomography Library
transitionschemeextension.h
1 #ifndef CTL_TRANSITIONSCHEMEEXTENSION_H
2 #define CTL_TRANSITIONSCHEMEEXTENSION_H
3 
4 #include "abstractsubsetgenerator.h"
5 #include <memory>
6 
7 namespace CTL {
8 
89 {
91 
92  protected: std::vector<ProjectionDataView> generateSubsetsImpl(uint iteration) const override;
93 
94 public:
96  explicit TransitionSchemeExtension(std::unique_ptr<AbstractFixedSizeSubsetGenerator> nestedGenerator);
97 
98  virtual void setSetup(const AcquisitionSetup& setup) override;
99  virtual void setProjections(ProjectionDataView projections) override;
100 
101  // SerializationInterface interface
102  void fromVariant(const QVariant& variant) override;
103  QVariant toVariant() const override;
104 
105  void setTransitionPeriod(uint transitionEveryNIterations);
106  void setMaximumNbSubsets(uint maxNbSubsets);
107  void setMinimumNbSubsets(uint minNbSubsets);
108  void setSubsetBounds(uint initialNbSubsets, uint finalNbSubsets);
109 
111  void setSubsetGenerator(std::unique_ptr<AbstractFixedSizeSubsetGenerator> nestedGenerator);
112 
113 protected:
114  TransitionSchemeExtension() = default;
115 
116  std::unique_ptr<AbstractFixedSizeSubsetGenerator> _nestedGen;
117 
118  uint _minNbSubsets = 1u;
119  uint _maxNbSubsets = 0u;
120  uint _transitionPeriod = 1u;
121 
122  virtual uint numberOfSubsets(uint iteration) const;
123  void shuffleSubsets(std::vector<ProjectionDataView> &subsets) const override;
124 };
125 
126 } // namespace CTL
127 
128 #endif // CTL_TRANSITIONSCHEMEEXTENSION_H
virtual void setSetup(const AcquisitionSetup &setup) override
Sets the AcquisitionSetup that belongs to the projection data to setup.
Definition: transitionschemeextension.cpp:77
virtual void setProjections(ProjectionDataView projections) override
Sets the projections that this instance shall operate on to projections.
Definition: transitionschemeextension.cpp:87
void setMinimumNbSubsets(uint minNbSubsets)
Sets the minimum number of subsets generated to minNbSubsets.
Definition: transitionschemeextension.cpp:334
virtual uint numberOfSubsets(uint iteration) const
Computes the number of subsets that shall be generated for iteration nb. \iteration.
Definition: transitionschemeextension.cpp:470
void setTransitionPeriod(uint transitionEveryNIterations)
Sets the transition period (i.e. the number of iterations after which the subset count is cut in half...
Definition: transitionschemeextension.cpp:198
void shuffleSubsets(std::vector< ProjectionDataView > &subsets) const override
Randomly permutes the order of the subsets in subsets.
Definition: transitionschemeextension.cpp:491
Holds a CTSystem together with the information about the system settings for all views from which pro...
Definition: acquisitionsetup.h:175
The ProjectionDataView class is a read-only wrapper for a reference to ProjectionData.
Definition: projectiondataview.h:51
void fromVariant(const QVariant &variant) override
Definition: transitionschemeextension.cpp:93
The TransitionSchemeExtension class is a decorator for subset generators enabling a transition from m...
Definition: transitionschemeextension.h:88
void setSubsetGenerator(AbstractFixedSizeSubsetGenerator *nestedGenerator)
Sets the nested subset generator to nestedGenerator; deleted previous one.
Definition: transitionschemeextension.cpp:420
std::vector< ProjectionDataView > generateSubsetsImpl(uint iteration) const override
Implementation of the wrapper for the subset generation routine.
Definition: transitionschemeextension.cpp:20
#define CTL_TYPE_ID(newIndex)
Definition: serializationinterface.h:189
unsigned int uint
Qt style alias for unsigned int.
Definition: modulelayout.h:6
The AbstractSubsetGenerator class is the abstract base class for subset generators.
Definition: abstractsubsetgenerator.h:57
const ProjectionDataView & projections() const
Returns the ProjectionDataView that has been set via setProjections().
Definition: abstractsubsetgenerator.cpp:180
void setSubsetBounds(uint initialNbSubsets, uint finalNbSubsets)
Sets the number of subsets in the beginning (early iterations) and at the end of transitions (late it...
Definition: transitionschemeextension.cpp:401
void setMaximumNbSubsets(uint maxNbSubsets)
Sets the maximum number of subsets generated to maxNbSubsets.
Definition: transitionschemeextension.cpp:262
The AbstractFixedSizeSubsetGenerator class specializes the AbstractSubsetGenerator for generators tha...
Definition: abstractsubsetgenerator.h:117
QVariant toVariant() const override
Definition: transitionschemeextension.cpp:117