00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
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
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
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 }
00118
00119 #endif