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
1.5.3 written by Dimitri van Heesch,
© 1997-2000