CTL  0.6.1
Computed Tomography Library
simplesubsetgenerator.h
1 #ifndef CTL_SIMPLESUBSETGENERATOR_H
2 #define CTL_SIMPLESUBSETGENERATOR_H
3 
4 #include "abstractsubsetgenerator.h"
5 
6 #include <QObject>
7 
8 namespace CTL {
9 
59 {
60  Q_GADGET
62 
63  protected: std::vector<ProjectionDataView> generateSubsetsImpl(uint iteration) const override;
64 
65 public:
67  Q_ENUM(Order)
68 
69  explicit SimpleSubsetGenerator(uint nbSubsets = 1, Order subsetOrder = Random);
70 
71  void setOrder(Order order);
72 
73  // SerializationInterface interface
74  void fromVariant(const QVariant& variant) override;
75  QVariant toVariant() const override;
76 
77 private:
78  Order _order = Random;
79 
80  std::vector<ProjectionDataView>
81  makeRandomSubsets(const std::vector<uint>& subsetSizes) const;
82  std::vector<ProjectionDataView>
83  makeAdjacentSubsets(const std::vector<uint>& subsetSizes) const;
84  std::vector<ProjectionDataView>
85  makeOrthogonalSubsets(const std::vector<uint>& subsetSizes) const;
86 
87  static QMetaEnum metaEnum();
88 };
89 
90 } // namespace CTL
91 
92 #endif // CTL_SIMPLESUBSETGENERATOR_H
Definition: simplesubsetgenerator.h:66
uint nbSubsets() const
Returns the number of subsets that are generated.
Definition: abstractsubsetgenerator.cpp:224
std::vector< ProjectionDataView > makeOrthogonalSubsets(const std::vector< uint > &subsetSizes) const
Creates subsets based on the assumption of a circular scan orbit.
Definition: simplesubsetgenerator.cpp:148
void fromVariant(const QVariant &variant) override
Definition: simplesubsetgenerator.cpp:69
Definition: simplesubsetgenerator.h:66
The ProjectionDataView class is a read-only wrapper for a reference to ProjectionData.
Definition: projectiondataview.h:51
Order
Definition: simplesubsetgenerator.h:66
QVariant toVariant() const override
Definition: simplesubsetgenerator.cpp:86
std::vector< uint > subsetSizes(uint nbViews, uint nbSubsets, SubsetArrangement arrangement)
Convenience helper function that calculates sizes for subsets given the total number of projections n...
Definition: abstractsubsetgenerator.cpp:295
std::vector< ProjectionDataView > makeAdjacentSubsets(const std::vector< uint > &subsetSizes) const
Creates subsets taking adjacent blocks of views into a subset.
Definition: simplesubsetgenerator.cpp:124
Definition: simplesubsetgenerator.h:66
Definition: simplesubsetgenerator.h:66
#define CTL_TYPE_ID(newIndex)
Definition: serializationinterface.h:189
std::vector< ProjectionDataView > generateSubsetsImpl(uint iteration) const override
Implementation of the subset generation routine.
Definition: simplesubsetgenerator.cpp:245
unsigned int uint
Qt style alias for unsigned int.
Definition: modulelayout.h:6
std::vector< ProjectionDataView > makeRandomSubsets(const std::vector< uint > &subsetSizes) const
Creates subsets based on random selection of views.
Definition: simplesubsetgenerator.cpp:101
The AbstractFixedSizeSubsetGenerator class specializes the AbstractSubsetGenerator for generators tha...
Definition: abstractsubsetgenerator.h:117
The SimpleSubsetGenerator class provides an implementation of subset generation featuring a few simpl...
Definition: simplesubsetgenerator.h:58
void setOrder(Order order)
Sets the order used for selecting views for a subset to order.
Definition: simplesubsetgenerator.cpp:66
static QMetaEnum metaEnum()
QMetaEnum object used to decode/encode subset order enum values.
Definition: simplesubsetgenerator.cpp:170
SimpleSubsetGenerator(uint nbSubsets=1, Order subsetOrder=Random)
Creates a SimpleSubsetGenerator that generates nbSubsets subsets according to the creation pattern su...
Definition: simplesubsetgenerator.cpp:48