freRegistrationProcessorBase.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: freRegistrationProcessorBase.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 __freRegistrationProcessorBase_h
00023 #define __freRegistrationProcessorBase_h
00024 
00025 #include "freLightRegistrationProcessorBase.h"
00026 
00027 namespace FREE
00028 {
00029 
00039 template <unsigned int VImageDimension>
00040                 class RegistrationProcessorBase : public LightRegistrationProcessorBase
00041 {
00042 public:
00044   typedef RegistrationProcessorBase Self;
00045   typedef LightRegistrationProcessorBase Superclass;
00046   typedef itk::SmartPointer<Self>        Pointer;
00047   typedef itk::SmartPointer<const Self>  ConstPointer;
00048   
00050   itkTypeMacro( RegistrationProcessorBase, LightRegistrationProcessorBase );
00051   itkNewMacro(Self);
00052   itkStaticConstMacro(ImageDimension, unsigned int, VImageDimension);
00053 
00054   typedef typename ImageTypes<VImageDimension>::InternalImageType ImageType;
00055   typedef typename ImageType::RegionType                          RegionType;
00056   typedef typename ImageType::SpacingType                         SpacingType;
00057   typedef typename ImageType::Pointer                             ImagePointer;
00058   typedef typename ImageTypes<VImageDimension>::PointType         PointType;
00059 
00060   typedef typename ImageTypes<VImageDimension>::TransformationFieldType TransformFieldType;
00061   typedef typename TransformFieldType::Pointer TransformFieldPointer;
00062 
00063   itkSetMacro(ReleaseInputsAfterRegistration,bool);
00064   itkGetMacro(ReleaseInputsAfterRegistration,bool);
00065   itkBooleanMacro(ReleaseInputsAfterRegistration);
00066    
00076   TransformFieldPointer GetTransformationField(const PointType& origin, const RegionType& region, const SpacingType& spacing);
00077 
00080   virtual const unsigned int GetFixedDimension() const {return VImageDimension;};
00083   virtual const unsigned int GetMovingDimension() const {return VImageDimension;};
00084 
00085   virtual void StartRegistration();
00086 
00087 protected:
00088   RegistrationProcessorBase();
00089 
00090   virtual ~RegistrationProcessorBase() {};
00091 
00092   virtual void ComputeRegistration();
00093 
00101   virtual void ResetInternals();
00102 
00106   virtual void ReleaseInputs();
00107 
00115   virtual TransformFieldPointer ComputeTransformationField(const PointType& origin, const RegionType& region, const SpacingType& spacing);      
00116 
00119   bool m_ReleaseInputsAfterRegistration;
00120 };
00121 
00122 }//End of Namespace free
00123 
00124 #ifndef ITK_MANUAL_INSTANTIATION
00125 #include "freRegistrationProcessorBase.txx"
00126 #endif
00127 
00128 #endif

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