Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkIterationReporter_h
00018 #define __itkIterationReporter_h
00019
00020 #include "itkProcessObject.h"
00021
00022 namespace itk
00023 {
00024
00054 class ITKCommon_EXPORT IterationReporter
00055 {
00056 public:
00058 IterationReporter(ProcessObject* filter, int threadId,
00059 unsigned long stepsPerUpdate = 100);
00060
00062 ~IterationReporter() {};
00063
00065 void CompletedStep()
00066 {
00067
00068
00069
00070
00071 if(--m_StepsBeforeUpdate == 0)
00072 {
00073 m_StepsBeforeUpdate = m_StepsPerUpdate;
00074 m_Filter->InvokeEvent( IterationEvent() );
00075 }
00076 }
00077 protected:
00078 ProcessObject* m_Filter;
00079 int m_ThreadId;
00080 unsigned long m_StepsPerUpdate;
00081 unsigned long m_StepsBeforeUpdate;
00082 };
00084
00085 }
00086
00087 #endif
00088