go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxResampleInterpolatorBase.h
Go to the documentation of this file.
00001 /*======================================================================
00002 
00003   This file is part of the elastix software.
00004 
00005   Copyright (c) University Medical Center Utrecht. All rights reserved.
00006   See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
00007   details.
00008 
00009      This software is distributed WITHOUT ANY WARRANTY; without even
00010      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00011      PURPOSE. See the above copyright notices for more information.
00012 
00013 ======================================================================*/
00014 
00015 #ifndef __elxResampleInterpolatorBase_h
00016 #define __elxResampleInterpolatorBase_h
00017 
00019 #include "elxMacro.h"
00020 
00021 #include "elxBaseComponentSE.h"
00022 #include "itkInterpolateImageFunction.h"
00023 
00024 
00025 namespace elastix
00026 {
00027   using namespace itk;
00028 
00039   template <class TElastix>
00040     class ResampleInterpolatorBase : public BaseComponentSE<TElastix>
00041   {
00042   public:
00043 
00045     typedef ResampleInterpolatorBase    Self;
00046     typedef BaseComponentSE<TElastix>   Superclass;
00047 
00049     itkTypeMacro( ResampleInterpolatorBase, BaseComponentSE );
00050 
00052     typedef typename Superclass::ElastixType          ElastixType;
00053     typedef typename Superclass::ElastixPointer       ElastixPointer;
00054     typedef typename Superclass::ConfigurationType    ConfigurationType;
00055     typedef typename Superclass::ConfigurationPointer ConfigurationPointer;
00056     typedef typename Superclass::RegistrationType     RegistrationType;
00057     typedef typename Superclass::RegistrationPointer  RegistrationPointer;
00058 
00060     typedef typename ElastixType::MovingImageType     InputImageType;
00061     typedef typename ElastixType::CoordRepType        CoordRepType;
00062 
00064     typedef InterpolateImageFunction<
00065       InputImageType, CoordRepType >                  ITKBaseType;
00066 
00068     virtual ITKBaseType * GetAsITKBaseType(void)
00069     {
00070       return dynamic_cast<ITKBaseType *>(this);
00071     }
00072 
00074     virtual const ITKBaseType * GetAsITKBaseType(void) const
00075     {
00076       return dynamic_cast<const ITKBaseType *>(this);
00077     }
00078 
00082     virtual int BeforeAllTransformix( void ){ return 0;};
00083 
00085     virtual void ReadFromFile( void );
00086 
00088     virtual void WriteToFile( void ) const;
00089 
00090   protected:
00091 
00093     ResampleInterpolatorBase() {}
00095     virtual ~ResampleInterpolatorBase() {}
00096 
00097   private:
00098 
00100     ResampleInterpolatorBase( const Self& );  // purposely not implemented
00102     void operator=( const Self& );            // purposely not implemented
00103 
00104   }; // end class ResampleInterpolatorBase
00105 
00106 
00107 } //end namespace elastix
00108 
00109 #ifndef ITK_MANUAL_INSTANTIATION
00110 #include "elxResampleInterpolatorBase.hxx"
00111 #endif
00112 
00113 #endif // end #ifndef __elxResampleInterpolatorBase_h


Generated on 24-05-2012 for elastix by doxygen 1.7.6.1 elastix logo