18 SimulationAreaIterator::SimulationAreaIterator(
const SimulationArea* area, 
size_t start_at_index)
 
   19     : m_area(area), m_index(start_at_index), m_element_index(0)
 
   21     if (m_index > m_area->totalSize())
 
   23                                                 "-> Error. Invalid initial index");
 
   25     if (m_index != m_area->totalSize() && m_area->isMasked(m_index))
 
   26         m_index = nextIndex(m_index);
 
   29 size_t SimulationAreaIterator::roiIndex()
 const 
   34 size_t SimulationAreaIterator::detectorIndex()
 const 
   41     size_t index = nextIndex(m_index);
 
   42     if (index != m_index) {
 
   56 size_t SimulationAreaIterator::nextIndex(
size_t currentIndex)
 
   58     size_t result = ++currentIndex;
 
   59     if (result < m_area->totalSize()) {
 
   62             if (result == m_area->totalSize())
 
   66         return m_area->totalSize();
 
Defines interface IDetector2D.
 
Defines class SimulationArea.
 
An iterator for SimulationArea.
 
SimulationAreaIterator & operator++()
prefix increment
 
Holds iteration logic over active detector channels in the presence of masked areas and RegionOfInter...
 
virtual bool isMasked(size_t index) const
returns true if given iterator index correspond to masked detector channel
 
size_t detectorIndex(size_t index) const
Return detector index from iterator index.
 
size_t roiIndex(size_t index) const
Return index in ROI map from iterator index.