go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxCUDAResampler.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 #ifndef __elxCUDAResampler_h
00015 #define __elxCUDAResampler_h
00016 
00017 
00018 #include "itkCUDAResampleImageFilter.h"
00019 #include "elxIncludes.h"
00020 
00021 namespace elastix
00022 {
00023 using namespace itk;
00024 
00040 template < class TElastix >
00041 class CUDAResampler :
00042   public itkCUDAResampleImageFilter<
00043   ITK_TYPENAME ResamplerBase<TElastix>::InputImageType,
00044   ITK_TYPENAME ResamplerBase<TElastix>::OutputImageType,
00045   ITK_TYPENAME ResamplerBase<TElastix>::CoordRepType >,
00046   public ResamplerBase<TElastix>
00047 {
00048 public:
00049 
00051   typedef CUDAResampler                                   Self;
00052   typedef itkCUDAResampleImageFilter<
00053     typename ResamplerBase<TElastix>::InputImageType,
00054     typename ResamplerBase<TElastix>::OutputImageType,
00055     typename ResamplerBase<TElastix>::CoordRepType >      Superclass1;
00056   typedef ResamplerBase<TElastix>                         Superclass2;
00057   typedef SmartPointer<Self>                              Pointer;
00058   typedef SmartPointer<const Self>                        ConstPointer;
00059 
00061   itkNewMacro( Self );
00062 
00064   itkTypeMacro( CUDAResampler, itkCUDAResampleImageFilter );
00065 
00070   elxClassNameMacro( "CUDAResampler" );
00071 
00073   typedef typename Superclass1::InputImageType            InputImageType;
00074   typedef typename Superclass1::OutputImageType           OutputImageType;
00075   typedef typename Superclass1::InputImagePointer         InputImagePointer;
00076   typedef typename Superclass1::OutputImagePointer        OutputImagePointer;
00077   typedef typename Superclass1::InputImageRegionType      InputImageRegionType;
00078   typedef typename Superclass1::TransformType             TransformType;
00079   typedef typename Superclass1::TransformPointerType      TransformPointerType;
00080   typedef typename Superclass1::InterpolatorType          InterpolatorType;
00081   typedef typename Superclass1::InterpolatorPointerType   InterpolatePointerType;
00082   typedef typename Superclass1::SizeType                  SizeType;
00083   typedef typename Superclass1::IndexType                 IndexType;
00084   typedef typename Superclass1::PointType                 PointType;
00085   typedef typename Superclass1::PixelType                 PixelType;
00086   typedef typename Superclass1::OutputImageRegionType     OutputImageRegionType;
00087   typedef typename Superclass1::SpacingType               SpacingType;
00088   typedef typename Superclass1::OriginPointType           OriginPointType;
00089   typedef typename Superclass1::ValidTransformPointer     ValidTransformPointer;
00090 
00092   typedef typename Superclass2::ElastixType           ElastixType;
00093   typedef typename Superclass2::ElastixPointer        ElastixPointer;
00094   typedef typename Superclass2::ConfigurationType     ConfigurationType;
00095   typedef typename Superclass2::ConfigurationPointer  ConfigurationPointer;
00096   typedef typename Superclass2::RegistrationType      RegistrationType;
00097   typedef typename Superclass2::RegistrationPointer   RegistrationPointer;
00098   typedef typename Superclass2::ITKBaseType           ITKBaseType;
00099 
00100   /* . */
00101   virtual int BeforeAll( void );
00102   virtual void BeforeRegistration( void );
00103 
00105   virtual void ReadFromFile( void );
00106 
00108   virtual void WriteToFile( void ) const;
00109 
00110 protected:
00111 
00113   CUDAResampler() {}
00115   virtual ~CUDAResampler() {}
00116 
00120   virtual void CheckForValidConfiguration( ValidTransformPointer & bSplineTransform );
00121 
00122 private:
00123 
00125   CUDAResampler( const Self& );   // purposely not implemented
00127   void operator=( const Self& );  // purposely not implemented
00128 
00129 }; // end class CUDAResampler
00130 
00131 
00132 } // end namespace elastix
00133 
00134 #ifndef ITK_MANUAL_INSTANTIATION
00135 #include "elxCUDAResampler.hxx"
00136 #endif
00137 
00138 #endif // end #ifndef __elxCUDAResampler_h
00139 


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