MeVisLabToolboxReference
FMEwork/ITK/Sources/ITK/MLITK/ITKSupport/mlITKCommandIterationUpdate.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //----------------------------------------------------------------------------------
00005 
00010 //----------------------------------------------------------------------------------
00011 
00012 #ifndef __mlITKCommandIterationUpdate_H
00013 #define __mlITKCommandIterationUpdate_H
00014 
00016 #include "mlInitSystemITKSupport.h"
00017 
00018 #ifndef __mlModuleIncludes_H
00019 #include "mlModuleIncludes.h"
00020 #endif
00021 
00022 #include <itkCommand.h>
00023 
00024 ML_START_NAMESPACE
00025 
00026 //----------------------------------------------------------------------------------
00028 //----------------------------------------------------------------------------------
00029 class MLITK_SUPPORT_EXPORT ITKCommandIterationUpdate : public itk::Command 
00030 {
00031 public:
00032 
00034   typedef ITKCommandIterationUpdate   Self;
00035 
00037   typedef itk::Command  Superclass;
00038 
00040   typedef itk::SmartPointer<Self>  Pointer;
00041 
00043   typedef itk::SmartPointer<const Self>  ConstPointer;
00044 
00046   itkTypeMacro( ITKCommandIterationUpdate, ::itk::Command);
00047 
00049   itkNewMacro(Self);
00050 
00053   void setObject(itk::Object *object);
00054 
00057   void setStringField(StringField *strField);
00058 
00061   StringField *getStringField() const;
00062 
00065   void setEndEventField(Field *strField);
00066 
00068   Field* getEndEventField() const;
00069 
00071   void reset();
00072 
00073 protected:
00074 
00076   ITKCommandIterationUpdate();
00077 
00079   ~ITKCommandIterationUpdate();
00080 
00082   virtual void Execute(itk::Object *obj, const itk::EventObject &event);
00083 
00086   virtual void Execute(const itk::Object *obj, const itk::EventObject &event);
00087 
00088 private:
00089 
00091   unsigned long    _observerHandleStartEvent;
00092 
00094   unsigned long    _observerHandleIterationEvent;
00095 
00097   unsigned long    _observerHandleEndEvent;
00098 
00100   unsigned long    _registered;
00101 
00103   itk::Object     *_object;
00104 
00106   ml::StringField *_stringField;
00107 
00109   ml::Field       *_endEventField;
00110 
00112   int              _eventCounter;
00113 };
00114 
00115 
00116 ML_END_NAMESPACE
00117 
00118 #endif
00119