go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxLinearInterpolator.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 __elxLinearInterpolator_h
00016 #define __elxLinearInterpolator_h
00017 
00018 #include "itkLinearInterpolateImageFunction.h"
00019 #include "elxIncludes.h"
00020 
00021 namespace elastix
00022 {
00023 
00024 using namespace itk;
00025 
00057   template < class TElastix >
00058     class LinearInterpolator :
00059     public
00060       LinearInterpolateImageFunction<
00061         ITK_TYPENAME InterpolatorBase<TElastix>::InputImageType,
00062         ITK_TYPENAME InterpolatorBase<TElastix>::CoordRepType >,
00063     public
00064       InterpolatorBase<TElastix>
00065   {
00066   public:
00067 
00069     typedef LinearInterpolator                  Self;
00070     typedef LinearInterpolateImageFunction<
00071       typename InterpolatorBase<TElastix>::InputImageType,
00072       typename InterpolatorBase<TElastix>::CoordRepType > Superclass1;
00073     typedef InterpolatorBase<TElastix>          Superclass2;
00074     typedef SmartPointer<Self>                  Pointer;
00075     typedef SmartPointer<const Self>            ConstPointer;
00076 
00078     itkNewMacro(Self);
00079 
00081     itkTypeMacro( LinearInterpolator, LinearInterpolateImageFunction );
00082 
00087     elxClassNameMacro( "LinearInterpolator" );
00088 
00090     itkStaticConstMacro( ImageDimension, unsigned int, Superclass1::ImageDimension );
00091 
00093     typedef typename Superclass1::OutputType                OutputType;
00094     typedef typename Superclass1::InputImageType            InputImageType;
00095     typedef typename Superclass1::IndexType                 IndexType;
00096     typedef typename Superclass1::ContinuousIndexType       ContinuousIndexType;
00097     typedef typename Superclass1::PointType                 PointType;
00098 
00100     typedef typename Superclass2::ElastixType               ElastixType;
00101     typedef typename Superclass2::ElastixPointer            ElastixPointer;
00102     typedef typename Superclass2::ConfigurationType         ConfigurationType;
00103     typedef typename Superclass2::ConfigurationPointer      ConfigurationPointer;
00104     typedef typename Superclass2::RegistrationType          RegistrationType;
00105     typedef typename Superclass2::RegistrationPointer       RegistrationPointer;
00106     typedef typename Superclass2::ITKBaseType               ITKBaseType;
00107 
00108   protected:
00109 
00111     LinearInterpolator() {}
00113     virtual ~LinearInterpolator() {}
00114 
00115   private:
00116 
00118     LinearInterpolator( const Self& );  // purposely not implemented
00120     void operator=( const Self& );      // purposely not implemented
00121 
00122   }; // end class LinearInterpolator
00123 
00124 
00125 } // end namespace elastix
00126 
00127 #ifndef ITK_MANUAL_INSTANTIATION
00128 #include "elxLinearInterpolator.hxx"
00129 #endif
00130 
00131 #endif // end #ifndef __elxLinearInterpolator_h
00132 


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