freMultiRigidRegistrationController.h

Go to the documentation of this file.
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: freMultiRigidRegistrationController.h,v $
00007   Language:  C++
00008  
00009  
00010   Date:      $Date: 2004/07/20 $
00011   Version:   $Revision: 0.1 $
00012  
00013   Copyright (c) 2007 Ralf o Floca (Department of Medical Informatics,
00014   Institute for Medical Biometry and Informatics, University of Heidelberg,
00015   Germany). All rights reserved.
00016   See FREECopyright.txt or http://www.mi.med.uni-hd.de/free/copyright.htm
00017   for details.
00018  
00019      This software is distributed WITHOUT ANY WARRANTY; without even 
00020      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00021      PURPOSE.  See the above copyright notices for more information.
00022  
00023 =========================================================================*/
00024 #ifndef __freMultiRigidRegistrationController_h
00025 #define __freMultiRigidRegistrationController_h
00026 
00027 #include "freRigidRegistrationControllerBase.h"
00028 
00029 #include "freRigidRegistrationProcessor.h"
00030 
00031 namespace FREE
00032 {
00033 
00043 freControllerIDMacro(MultiRigidRegistrationControllerBase, "MultiRigidRegistrationBase");
00044 template <class TControlledMultiRigidProcessor>
00045 class MultiRigidRegistrationControllerBase : public RigidRegistrationControllerBase<TControlledMultiRigidProcessor>
00046 {
00047 public:
00048     typedef TControlledMultiRigidProcessor ComponentType;
00049     typedef RigidRegistrationControllerBase<ComponentType> Superclass;
00050 
00051     itkTypeMacro(MultiRigidRegistrationControllerBase, RigidRegistrationControllerBase);
00052 
00053 protected:
00054     MultiRigidRegistrationControllerBase():Superclass()
00055     {
00056         //Profile settings
00057         this->UpdateControllerID(ControllerID::MultiRigidRegistrationControllerBase);
00058         this->m_Description = "Realizes a rigid registration for multiple resolutions by an image pyramid.";
00059     };
00060 
00061     virtual void GenerateProfile(CtrlProfile::ControllerProfile& profile, 
00062                                  const SessionComponentCache* pComponentCache,
00063                                  bool bRegardOldSetup) const
00064     {
00065       Superclass::GenerateProfile(profile,pComponentCache,bRegardOldSetup);
00066 
00067       //Parameters
00068       profile.Parameters().AddParameter(cParam_MRRegLevel,Parameter::PVTInteger,cParamDsc_MRRegLevel,1,"1");
00069       profile.Parameters().AddParameter(cParam_MRRegUseSchedule,Parameter::PVTBool,cParamDsc_MRRegUseSchedule,1,"false");
00070       profile.Parameters().AddParameter(cParam_MRRegResolutionSchedule,Parameter::PVTInteger,cParamDsc_MRRegResolutionSchedule,TControlledMultiRigidProcessor::ImageDimension,"2",-1,true);
00071     };
00072 
00073 };
00074 
00084 freControllerIDMacro(MultiRigid2DRegistrationController, "Multi Rigid 2D Registration");
00085 class MultiRigid2DRegistrationController : public MultiRigidRegistrationControllerBase<MultiRigidRegistrationProcessor2D>
00086 {
00087 public:
00088     typedef MultiRigidRegistrationProcessor2D ComponentType;
00089     typedef MultiRigidRegistrationControllerBase<ComponentType> Superclass;
00090 
00091     itkTypeMacro(MultiRigid3DRegistrationController, MultiRigidRegistrationControllerBase);
00092 
00093     MultiRigid2DRegistrationController();
00094 };
00095 
00105 freControllerIDMacro(MultiRigid3DRegistrationController, "Multi Rigid 3D Registration");
00106 class MultiRigid3DRegistrationController : public MultiRigidRegistrationControllerBase<MultiRigidRegistrationProcessor3D>
00107 {
00108 public:
00109     typedef MultiRigidRegistrationProcessor3D ComponentType;
00110     typedef MultiRigidRegistrationControllerBase<ComponentType> Superclass;
00111 
00112     itkTypeMacro(MultiRigid3DRegistrationController, MultiRigidRegistrationControllerBase);
00113 
00114     MultiRigid3DRegistrationController();
00115 };
00116 
00117 } //end of namespace free
00118 
00119 #endif

Generated at Sat Oct 13 16:40:56 2007 for f.r.e.e. - Flexible Registration and Evaluation Engine by doxygen 1.5.3 written by Dimitri van Heesch, © 1997-2000