Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes

mitk::MultiStepper Class Reference
[Navigation Control Classes]

Helper class to step through a list. More...

#include <mitkMultiStepper.h>

Inheritance diagram for mitk::MultiStepper:
Inheritance graph
[legend]
Collaboration diagram for mitk::MultiStepper:
Collaboration graph
[legend]

List of all members.

Public Types

typedef MultiStepper Self
typedef Stepper Superclass
typedef itk::SmartPointer< SelfPointer
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

Detailed Description

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.


Member Typedef Documentation

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.

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.


Constructor & Destructor Documentation

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.

{
}

Member Function Documentation

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;
    }
  } 
}

Member Data Documentation

Stepper::Pointer mitk::MultiStepper::m_LargestRangeStepper [protected]

Definition at line 61 of file mitkMultiStepper.h.

Definition at line 60 of file mitkMultiStepper.h.

Definition at line 59 of file mitkMultiStepper.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines