#include "AliMpSectorPadIterator.h"
#include "AliMpSector.h"
#include "AliMpMotifType.h"
#include "AliMpRow.h"
#include "AliMpVRowSegment.h"
#include "AliMpMotifMap.h"
#include "AliMpMotifPosition.h"
ClassImp(AliMpSectorPadIterator)
AliMpSectorPadIterator::AliMpSectorPadIterator()
: AliMpVPadIterator(),
fkSector(0),
fCurrentIndex(0),
fMotifPos(0),
fIterator()
{
}
AliMpSectorPadIterator::AliMpSectorPadIterator(const AliMpSector* sector)
: AliMpVPadIterator(),
fkSector(sector),
fCurrentIndex(0),
fMotifPos(0),
fIterator()
{
}
AliMpSectorPadIterator::AliMpSectorPadIterator(const AliMpSectorPadIterator& right)
: AliMpVPadIterator(right),
fkSector(0),
fCurrentIndex(0),
fMotifPos(0),
fIterator()
{
*this = right;
}
AliMpSectorPadIterator::~AliMpSectorPadIterator()
{
}
AliMpSectorPadIterator&
AliMpSectorPadIterator::operator = (const AliMpSectorPadIterator& right)
{
if (this == &right) return *this;
AliMpVPadIterator::operator=(right);
fkSector = right.fkSector;
fCurrentIndex = right.fCurrentIndex,
fMotifPos = right.fMotifPos;
fIterator = right.fIterator;
return *this;
}
AliMpMotifPosition* AliMpSectorPadIterator::ResetToCurrentMotifPosition()
{
if ( fCurrentIndex == fkSector->GetMotifMap()->GetNofMotifPositions() ) {
Invalidate();
return 0;
}
fMotifPos = fkSector->GetMotifMap()->GetMotifPosition(fCurrentIndex);
fIterator = AliMpMotifPositionPadIterator(fMotifPos);
fIterator.First();
return fMotifPos;
}
Bool_t AliMpSectorPadIterator::IsValid() const
{
return (fkSector!=0) && (fMotifPos!=0);
}
void AliMpSectorPadIterator::First()
{
if (!fkSector) {
Invalidate();
return;
}
fCurrentIndex =0;
ResetToCurrentMotifPosition();
return;
}
void AliMpSectorPadIterator::Next()
{
if (!IsValid()) return;
fIterator.Next();
if (!fIterator.IsDone()) return;
++fCurrentIndex;
if (ResetToCurrentMotifPosition()) return;
Invalidate();
return;
}
Bool_t AliMpSectorPadIterator::IsDone() const
{
return ! IsValid();
}
AliMpPad AliMpSectorPadIterator::CurrentItem () const
{
if (!IsValid())
return AliMpPad::Invalid();
return fIterator.CurrentItem();
}
void AliMpSectorPadIterator::Invalidate()
{
fMotifPos = 0;
fIterator.Invalidate();
}
AliMpSectorPadIterator.cxx:1 AliMpSectorPadIterator.cxx:2 AliMpSectorPadIterator.cxx:3 AliMpSectorPadIterator.cxx:4 AliMpSectorPadIterator.cxx:5 AliMpSectorPadIterator.cxx:6 AliMpSectorPadIterator.cxx:7 AliMpSectorPadIterator.cxx:8 AliMpSectorPadIterator.cxx:9 AliMpSectorPadIterator.cxx:10 AliMpSectorPadIterator.cxx:11 AliMpSectorPadIterator.cxx:12 AliMpSectorPadIterator.cxx:13 AliMpSectorPadIterator.cxx:14 AliMpSectorPadIterator.cxx:15 AliMpSectorPadIterator.cxx:16 AliMpSectorPadIterator.cxx:17 AliMpSectorPadIterator.cxx:18 AliMpSectorPadIterator.cxx:19 AliMpSectorPadIterator.cxx:20 AliMpSectorPadIterator.cxx:21 AliMpSectorPadIterator.cxx:22 AliMpSectorPadIterator.cxx:23 AliMpSectorPadIterator.cxx:24 AliMpSectorPadIterator.cxx:25 AliMpSectorPadIterator.cxx:26 AliMpSectorPadIterator.cxx:27 AliMpSectorPadIterator.cxx:28 AliMpSectorPadIterator.cxx:29 AliMpSectorPadIterator.cxx:30 AliMpSectorPadIterator.cxx:31 AliMpSectorPadIterator.cxx:32 AliMpSectorPadIterator.cxx:33 AliMpSectorPadIterator.cxx:34 AliMpSectorPadIterator.cxx:35 AliMpSectorPadIterator.cxx:36 AliMpSectorPadIterator.cxx:37 AliMpSectorPadIterator.cxx:38 AliMpSectorPadIterator.cxx:39 AliMpSectorPadIterator.cxx:40 AliMpSectorPadIterator.cxx:41 AliMpSectorPadIterator.cxx:42 AliMpSectorPadIterator.cxx:43 AliMpSectorPadIterator.cxx:44 AliMpSectorPadIterator.cxx:45 AliMpSectorPadIterator.cxx:46 AliMpSectorPadIterator.cxx:47 AliMpSectorPadIterator.cxx:48 AliMpSectorPadIterator.cxx:49 AliMpSectorPadIterator.cxx:50 AliMpSectorPadIterator.cxx:51 AliMpSectorPadIterator.cxx:52 AliMpSectorPadIterator.cxx:53 AliMpSectorPadIterator.cxx:54 AliMpSectorPadIterator.cxx:55 AliMpSectorPadIterator.cxx:56 AliMpSectorPadIterator.cxx:57 AliMpSectorPadIterator.cxx:58 AliMpSectorPadIterator.cxx:59 AliMpSectorPadIterator.cxx:60 AliMpSectorPadIterator.cxx:61 AliMpSectorPadIterator.cxx:62 AliMpSectorPadIterator.cxx:63 AliMpSectorPadIterator.cxx:64 AliMpSectorPadIterator.cxx:65 AliMpSectorPadIterator.cxx:66 AliMpSectorPadIterator.cxx:67 AliMpSectorPadIterator.cxx:68 AliMpSectorPadIterator.cxx:69 AliMpSectorPadIterator.cxx:70 AliMpSectorPadIterator.cxx:71 AliMpSectorPadIterator.cxx:72 AliMpSectorPadIterator.cxx:73 AliMpSectorPadIterator.cxx:74 AliMpSectorPadIterator.cxx:75 AliMpSectorPadIterator.cxx:76 AliMpSectorPadIterator.cxx:77 AliMpSectorPadIterator.cxx:78 AliMpSectorPadIterator.cxx:79 AliMpSectorPadIterator.cxx:80 AliMpSectorPadIterator.cxx:81 AliMpSectorPadIterator.cxx:82 AliMpSectorPadIterator.cxx:83 AliMpSectorPadIterator.cxx:84 AliMpSectorPadIterator.cxx:85 AliMpSectorPadIterator.cxx:86 AliMpSectorPadIterator.cxx:87 AliMpSectorPadIterator.cxx:88 AliMpSectorPadIterator.cxx:89 AliMpSectorPadIterator.cxx:90 AliMpSectorPadIterator.cxx:91 AliMpSectorPadIterator.cxx:92 AliMpSectorPadIterator.cxx:93 AliMpSectorPadIterator.cxx:94 AliMpSectorPadIterator.cxx:95 AliMpSectorPadIterator.cxx:96 AliMpSectorPadIterator.cxx:97 AliMpSectorPadIterator.cxx:98 AliMpSectorPadIterator.cxx:99 AliMpSectorPadIterator.cxx:100 AliMpSectorPadIterator.cxx:101 AliMpSectorPadIterator.cxx:102 AliMpSectorPadIterator.cxx:103 AliMpSectorPadIterator.cxx:104 AliMpSectorPadIterator.cxx:105 AliMpSectorPadIterator.cxx:106 AliMpSectorPadIterator.cxx:107 AliMpSectorPadIterator.cxx:108 AliMpSectorPadIterator.cxx:109 AliMpSectorPadIterator.cxx:110 AliMpSectorPadIterator.cxx:111 AliMpSectorPadIterator.cxx:112 AliMpSectorPadIterator.cxx:113 AliMpSectorPadIterator.cxx:114 AliMpSectorPadIterator.cxx:115 AliMpSectorPadIterator.cxx:116 AliMpSectorPadIterator.cxx:117 AliMpSectorPadIterator.cxx:118 AliMpSectorPadIterator.cxx:119 AliMpSectorPadIterator.cxx:120 AliMpSectorPadIterator.cxx:121 AliMpSectorPadIterator.cxx:122 AliMpSectorPadIterator.cxx:123 AliMpSectorPadIterator.cxx:124 AliMpSectorPadIterator.cxx:125 AliMpSectorPadIterator.cxx:126 AliMpSectorPadIterator.cxx:127 AliMpSectorPadIterator.cxx:128 AliMpSectorPadIterator.cxx:129 AliMpSectorPadIterator.cxx:130 AliMpSectorPadIterator.cxx:131 AliMpSectorPadIterator.cxx:132 AliMpSectorPadIterator.cxx:133 AliMpSectorPadIterator.cxx:134 AliMpSectorPadIterator.cxx:135 AliMpSectorPadIterator.cxx:136 AliMpSectorPadIterator.cxx:137 AliMpSectorPadIterator.cxx:138 AliMpSectorPadIterator.cxx:139 AliMpSectorPadIterator.cxx:140 AliMpSectorPadIterator.cxx:141 AliMpSectorPadIterator.cxx:142 AliMpSectorPadIterator.cxx:143 AliMpSectorPadIterator.cxx:144 AliMpSectorPadIterator.cxx:145 AliMpSectorPadIterator.cxx:146 AliMpSectorPadIterator.cxx:147 AliMpSectorPadIterator.cxx:148 AliMpSectorPadIterator.cxx:149 AliMpSectorPadIterator.cxx:150 AliMpSectorPadIterator.cxx:151 AliMpSectorPadIterator.cxx:152 AliMpSectorPadIterator.cxx:153 AliMpSectorPadIterator.cxx:154 AliMpSectorPadIterator.cxx:155 AliMpSectorPadIterator.cxx:156 AliMpSectorPadIterator.cxx:157 AliMpSectorPadIterator.cxx:158 AliMpSectorPadIterator.cxx:159 AliMpSectorPadIterator.cxx:160 AliMpSectorPadIterator.cxx:161 AliMpSectorPadIterator.cxx:162 AliMpSectorPadIterator.cxx:163 AliMpSectorPadIterator.cxx:164 AliMpSectorPadIterator.cxx:165 AliMpSectorPadIterator.cxx:166 AliMpSectorPadIterator.cxx:167 AliMpSectorPadIterator.cxx:168 AliMpSectorPadIterator.cxx:169 AliMpSectorPadIterator.cxx:170 AliMpSectorPadIterator.cxx:171 AliMpSectorPadIterator.cxx:172 AliMpSectorPadIterator.cxx:173 AliMpSectorPadIterator.cxx:174 AliMpSectorPadIterator.cxx:175 AliMpSectorPadIterator.cxx:176 AliMpSectorPadIterator.cxx:177 AliMpSectorPadIterator.cxx:178 AliMpSectorPadIterator.cxx:179 AliMpSectorPadIterator.cxx:180 AliMpSectorPadIterator.cxx:181 AliMpSectorPadIterator.cxx:182 AliMpSectorPadIterator.cxx:183 AliMpSectorPadIterator.cxx:184 AliMpSectorPadIterator.cxx:185 AliMpSectorPadIterator.cxx:186 AliMpSectorPadIterator.cxx:187 AliMpSectorPadIterator.cxx:188 AliMpSectorPadIterator.cxx:189 AliMpSectorPadIterator.cxx:190 AliMpSectorPadIterator.cxx:191 AliMpSectorPadIterator.cxx:192 AliMpSectorPadIterator.cxx:193 AliMpSectorPadIterator.cxx:194 AliMpSectorPadIterator.cxx:195 AliMpSectorPadIterator.cxx:196 AliMpSectorPadIterator.cxx:197 AliMpSectorPadIterator.cxx:198 AliMpSectorPadIterator.cxx:199 AliMpSectorPadIterator.cxx:200 AliMpSectorPadIterator.cxx:201 AliMpSectorPadIterator.cxx:202 AliMpSectorPadIterator.cxx:203 AliMpSectorPadIterator.cxx:204 AliMpSectorPadIterator.cxx:205