00001 /*========================================================================= 00002 00003 Program: F.R.E.E. - flexible registration evaluation engine 00004 Version: v.1.0.0 00005 Date: $Date: 2006/09/01 12:00:00 $ 00006 Module: $RCSfile: freLightRegistrationProcessorBase.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 __freLightRegistrationProcessorBase_h 00023 #define __freLightRegistrationProcessorBase_h 00024 00025 #include "freElementals.h" 00026 #include "freSetup.h" 00027 #include "freExceptions.h" 00028 #include "freRegistrationEvents.h" 00029 00030 #include "freSessionInfo.h" 00031 00032 #include "itkObject.h" 00033 00034 namespace FREE 00035 { 00036 00047 class LightRegistrationProcessorBase : public itk::Object 00048 { 00049 public: 00051 typedef LightRegistrationProcessorBase Self; 00052 typedef itk::Object Superclass; 00053 typedef itk::SmartPointer<Self> Pointer; 00054 typedef itk::SmartPointer<const Self> ConstPointer; 00055 00057 itkTypeMacro( LightRegistrationProcessorBase, itk::LightObject ); 00058 00062 LevelEventBase::Pointer fnOnNextLevel; 00065 IterationEventBase::Pointer fnOnNextIteration; 00069 RegistrationProgressEventBase::Pointer fnOnProgress; 00070 00074 void SetSessionInfo(SessionInfo* pInfo); 00075 00079 SessionInfo* GetSessionInfo(); 00080 00083 void SetComponentCache(SessionComponentCache* pCache); 00084 00087 SessionComponentCache* GetComponentCache(); 00088 00092 ComponentSetup* GetComponentSetup(); 00093 const ComponentSetup* GetComponentSetup() const; 00094 00096 long GetCurrentIterationCount() const { return m_lCurIteration; }; 00097 00100 const int& GetCurrentResolutionLevel() const { return m_iResolutionLevel; }; 00101 00106 virtual const long GetMaxIterationCount() const {return -1;}; 00109 virtual const int GetResolutionLevelCount() const {return 1;}; 00110 00113 virtual const unsigned int GetFixedDimension() const {return 0;}; 00116 virtual const unsigned int GetMovingDimension() const {return 0;}; 00117 00121 bool RegistrationIsFinished() const {return this->m_bRegistrationDone;}; 00122 00126 virtual void StartRegistration(); 00127 00128 protected: 00131 LightRegistrationProcessorBase(); 00132 00133 virtual ~LightRegistrationProcessorBase(); 00134 00141 virtual void ComputeRegistration() = 0; 00142 00145 SessionInfo* m_pSessionInfo; 00146 00148 SessionComponentCache* m_pComponentCache; 00149 00151 int m_iResolutionLevel; 00152 00155 long m_lCurIteration; 00156 00159 bool m_bRegistrationDone; 00161 bool m_bRegistrationStarted; 00162 }; 00163 00164 }//End of Namespace free 00165 00166 #endif
1.5.3 written by Dimitri van Heesch,
© 1997-2000