CTL  0.6.1
Computed Tomography Library
modulelayout.h
Go to the documentation of this file.
1 #ifndef CTL_MODULELAYOUT_H
2 #define CTL_MODULELAYOUT_H
3 
4 #include <vector>
5 
6 typedef unsigned int uint;
7 
8 namespace CTL {
9 
33 {
34 public:
35  ModuleLayout(uint nbRows = 0, uint nbCols = 0);
36 
37  int& operator()(uint row, uint col);
38  const int& operator()(uint row, uint col) const;
39 
40  uint columns() const;
41  uint rows() const;
42  uint nbNonEmptyModules() const;
43 
44  bool isEmpty() const;
45  bool hasUniqueIndices() const;
46  int largestModuleIdx() const;
47  std::vector<uint> uniqueIndices() const;
48 
49  static ModuleLayout canonicLayout(uint nbRows, uint nbCols, bool rowMajorOrder = true);
50 
51 private:
54  std::vector<int> _layout;
55 };
56 
57 } // namespace CTL
58 
61 #endif // CTL_MODULELAYOUT_H
Simple class that holds the layout of a multi module detector.
Definition: modulelayout.h:32
uint nbNonEmptyModules() const
Returns the number of entries that is larger than zero.
Definition: modulelayout.cpp:84
int & operator()(uint row, uint col)
Definition: modulelayout.cpp:62
static ModuleLayout canonicLayout(uint nbRows, uint nbCols, bool rowMajorOrder=true)
Definition: modulelayout.cpp:155
ModuleLayout(uint nbRows=0, uint nbCols=0)
Definition: modulelayout.cpp:40
bool isEmpty() const
Definition: modulelayout.cpp:93
uint rows() const
Definition: modulelayout.cpp:77
uint _cols
The number of columns in the layout.
Definition: modulelayout.h:53
std::vector< uint > uniqueIndices() const
Returns a set (i.e. no repetitions) of all indices appearing in this layout. Does not list negative v...
Definition: modulelayout.cpp:118
unsigned int uint
Qt style alias for unsigned int.
Definition: modulelayout.h:6
int largestModuleIdx() const
Returns the largest module index in this layout or -1 if the layout is empty.
Definition: modulelayout.cpp:106
std::vector< int > _layout
The internal data vector.
Definition: modulelayout.h:54
uint columns() const
Definition: modulelayout.cpp:72
uint _rows
The number of rows in the layout.
Definition: modulelayout.h:52
bool hasUniqueIndices() const
Returns true if all indices in this instance appear at maximum once.
Definition: modulelayout.cpp:98