00001 /*========================================================================= 00002 00003 Program: F.R.E.E. - flexible registration evaluation engine 00004 Version: v.0.7.2 00005 Date: $Date: 2006/09/01 12:00:00 $ 00006 Module: $RCSfile: freRegistrationProcessEventHandler.h,v $ 00007 Language: C++ 00008 00009 00010 00011 Copyright (c) 2007 Ralf o Floca (Department of Medical Informatics, 00012 Institute for Medical Biometry and Informatics, University of Heidelberg, 00013 Germany). All rights reserved. 00014 See FREECopyright.txt or http://www.mi.med.uni-hd.de/free/copyright.htm 00015 for details. 00016 00017 This software is distributed WITHOUT ANY WARRANTY; without even 00018 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00019 PURPOSE. See the above copyright notices for more information. 00020 00021 =========================================================================*/ 00022 #ifndef __freRegistrationProcessEventHandler_h 00023 #define __freRegistrationProcessEventHandler_h 00024 00025 #include "freRegistrationEvents.h" 00026 #include "freControllerEvents.h" 00027 #include "freSessionComponentCache.h" 00028 #include "freSessionInfo.h" 00029 00030 namespace FREE 00031 { 00032 00047 template <class TRegistrationProcessor> 00048 class RegistrationProcessEventHandler : public itk::LightObject 00049 { 00050 public: 00051 typedef RegistrationProcessEventHandler<TRegistrationProcessor> Self; 00052 typedef itk::SmartPointer<RegistrationProcessEventHandler> Pointer; 00053 typedef typename TRegistrationProcessor RegistrationProcessorType; 00054 00055 itkNewMacro(RegistrationProcessEventHandler); 00056 itkTypeMacro(RegistrationProcessEventHandler,itk::LightObject); 00057 00058 void SetSessionInfo(SessionInfo* pSessionInfo); 00059 void SetOnProgress(ProgressCtrlEventBase* onProgress); 00060 void SetOnCallback(CallbackCtrlEventBase* onCallback); 00061 void SetComponentCache(SessionComponentCache* pCache); 00062 00063 protected: 00064 RegistrationProcessEventHandler(); 00065 00067 ProgressCtrlEventBase::Pointer m_OnProgress; 00069 CallbackCtrlEventBase::Pointer m_OnCallback; 00070 00072 typename IterationEvent<Self>::Pointer m_IterationEvent; 00074 typename LevelEvent<Self>::Pointer m_LevelEvent; 00076 typename RegistrationProgressEvent<Self>::Pointer m_RegistrationProgressEvent; 00077 00078 SessionInfo* m_pSessionInfo; 00079 00080 SessionComponentCache* m_pCache; 00081 00082 RegistrationProcessorType* m_pProcessor; 00083 00088 void OnNextLevel(const unsigned int iLevel, void* pSender); 00089 00095 void OnNextIteration(const long lIteration, Statistics* pStatistic, void* pSender); 00096 00102 void OnRegistrationProgressEvent(const RegistrationStatusType status, void* pSender, 00103 const std::string sComment); 00104 00105 }; 00106 00107 } //end of namespace free 00108 00109 #ifndef ITK_MANUAL_INSTANTIATION 00110 #include "freRegistrationProcessEventHandler.txx" 00111 #endif 00112 00113 #endif
1.5.3 written by Dimitri van Heesch,
© 1997-2000