Helper class to step through a list. More...
#include <mitkMultiStepper.h>
Public Types | |
typedef MultiStepper | Self |
typedef Stepper | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer < const Self > | ConstPointer |
Public Member Functions | |
virtual const char * | GetClassName () const |
void | AddStepper (Stepper::Pointer stepper, unsigned int repeat=1) |
void | RemoveStepper (Stepper::Pointer stepper, unsigned int repeat=1) |
void | SetPos (unsigned int pos) |
void | SetSteps (const unsigned int steps) |
Static Public Member Functions | |
static Pointer | New () |
Protected Types | |
typedef std::set < Stepper::Pointer > | StepperSet |
typedef std::map < Stepper::Pointer, unsigned int > | ScaleFactorMap |
Protected Member Functions | |
MultiStepper () | |
virtual | ~MultiStepper () |
void | UpdateStepCount () |
Protected Attributes | |
StepperSet | m_SubSteppers |
ScaleFactorMap | m_ScaleFactors |
Stepper::Pointer | m_LargestRangeStepper |
Helper class to step through a list.
A helper class to step through a list. Does not contain the list, just the position in the list (between 0 and GetSteps()). Provides methods like First (go to the first element), Next (go to the next one), etc.
Definition at line 39 of file mitkMultiStepper.h.
typedef itk::SmartPointer<const Self> mitk::MultiStepper::ConstPointer |
Definition at line 42 of file mitkMultiStepper.h.
typedef itk::SmartPointer<Self> mitk::MultiStepper::Pointer |
Definition at line 42 of file mitkMultiStepper.h.
typedef std::map<Stepper::Pointer,unsigned int> mitk::MultiStepper::ScaleFactorMap [protected] |
Definition at line 58 of file mitkMultiStepper.h.
typedef MultiStepper mitk::MultiStepper::Self |
Definition at line 42 of file mitkMultiStepper.h.
typedef std::set<Stepper::Pointer> mitk::MultiStepper::StepperSet [protected] |
Definition at line 57 of file mitkMultiStepper.h.
Definition at line 42 of file mitkMultiStepper.h.
mitk::MultiStepper::MultiStepper | ( | ) | [protected] |
Definition at line 22 of file mitkMultiStepper.cpp.
{ }
mitk::MultiStepper::~MultiStepper | ( | ) | [protected, virtual] |
Definition at line 26 of file mitkMultiStepper.cpp.
{ }
void mitk::MultiStepper::AddStepper | ( | Stepper::Pointer | stepper, |
unsigned int | repeat = 1 |
||
) |
Definition at line 29 of file mitkMultiStepper.cpp.
{ m_SubSteppers.insert(stepper); m_ScaleFactors.insert(std::make_pair(stepper,repeat)); UpdateStepCount(); }
virtual const char* mitk::MultiStepper::GetClassName | ( | ) | const [virtual] |
static Pointer mitk::MultiStepper::New | ( | ) | [static] |
Reimplemented from mitk::Stepper.
Referenced by mitkMultiStepperTest().
void mitk::MultiStepper::RemoveStepper | ( | Stepper::Pointer | stepper, |
unsigned int | repeat = 1 |
||
) |
Definition at line 34 of file mitkMultiStepper.cpp.
{ m_SubSteppers.erase(stepper); m_ScaleFactors.erase(stepper); UpdateStepCount(); }
void mitk::MultiStepper::SetPos | ( | unsigned int | pos ) | [virtual] |
Reimplemented from mitk::Stepper.
Definition at line 60 of file mitkMultiStepper.cpp.
References mitk::Stepper::SetPos().
{ Stepper::SetPos(pos); for (StepperSet::iterator it = m_SubSteppers.begin(); it != m_SubSteppers.end() ; it++ ) { unsigned int count = (*it)->GetSteps() * m_ScaleFactors[(*it)]; if ((this->GetSteps() != 0 ) && ((*it)->GetSteps() != 0)) { (*it)->SetPos((pos * count / this->GetSteps() ) % (*it)->GetSteps()) ; } } };
void mitk::MultiStepper::SetSteps | ( | const unsigned int | steps ) | [virtual] |
Reimplemented from mitk::Stepper.
Definition at line 70 of file mitkMultiStepper.cpp.
{
assert(false);
};
void mitk::MultiStepper::UpdateStepCount | ( | ) | [protected] |
Definition at line 74 of file mitkMultiStepper.cpp.
{ m_Steps=0; m_LargestRangeStepper = NULL; for (StepperSet::iterator it = m_SubSteppers.begin(); it != m_SubSteppers.end() ; it++ ) { unsigned int count = (*it)->GetSteps() * m_ScaleFactors[(*it)]; if (count > m_Steps) { m_Steps = count; m_LargestRangeStepper = *it; } } }
Stepper::Pointer mitk::MultiStepper::m_LargestRangeStepper [protected] |
Definition at line 61 of file mitkMultiStepper.h.
ScaleFactorMap mitk::MultiStepper::m_ScaleFactors [protected] |
Definition at line 60 of file mitkMultiStepper.h.
StepperSet mitk::MultiStepper::m_SubSteppers [protected] |
Definition at line 59 of file mitkMultiStepper.h.