go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxNearestNeighborInterpolator.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 __elxNearestNeighborInterpolator_h
00016 #define __elxNearestNeighborInterpolator_h
00017 
00018 #include "itkNearestNeighborInterpolateImageFunction.h"
00019 #include "elxIncludes.h"
00020 
00021 namespace elastix
00022 {
00023 
00024 using namespace itk;
00025 
00040   template < class TElastix >
00041     class NearestNeighborInterpolator :
00042     public
00043       NearestNeighborInterpolateImageFunction<
00044         ITK_TYPENAME InterpolatorBase<TElastix>::InputImageType,
00045         ITK_TYPENAME InterpolatorBase<TElastix>::CoordRepType >,
00046     public
00047       InterpolatorBase<TElastix>
00048   {
00049   public:
00050 
00052     typedef NearestNeighborInterpolator                 Self;
00053     typedef NearestNeighborInterpolateImageFunction<
00054       typename InterpolatorBase<TElastix>::InputImageType,
00055       typename InterpolatorBase<TElastix>::CoordRepType > Superclass1;
00056     typedef InterpolatorBase<TElastix>          Superclass2;
00057     typedef SmartPointer<Self>                  Pointer;
00058     typedef SmartPointer<const Self>            ConstPointer;
00059 
00061     itkNewMacro(Self);
00062 
00064     itkTypeMacro( NearestNeighborInterpolator, NearestNeighborInterpolateImageFunction );
00065 
00070     elxClassNameMacro( "NearestNeighborInterpolator" );
00071 
00073     itkStaticConstMacro( ImageDimension, unsigned int, Superclass1::ImageDimension );
00074 
00076     typedef typename Superclass1::OutputType                OutputType;
00077     typedef typename Superclass1::InputImageType            InputImageType;
00078     typedef typename Superclass1::IndexType                 IndexType;
00079     typedef typename Superclass1::ContinuousIndexType       ContinuousIndexType;
00080     typedef typename Superclass1::PointType                 PointType;
00081 
00083     typedef typename Superclass2::ElastixType               ElastixType;
00084     typedef typename Superclass2::ElastixPointer            ElastixPointer;
00085     typedef typename Superclass2::ConfigurationType         ConfigurationType;
00086     typedef typename Superclass2::ConfigurationPointer      ConfigurationPointer;
00087     typedef typename Superclass2::RegistrationType          RegistrationType;
00088     typedef typename Superclass2::RegistrationPointer       RegistrationPointer;
00089     typedef typename Superclass2::ITKBaseType               ITKBaseType;
00090 
00091   protected:
00092 
00094     NearestNeighborInterpolator() {}
00096     virtual ~NearestNeighborInterpolator() {}
00097 
00098   private:
00099 
00101     NearestNeighborInterpolator( const Self& ); // purposely not implemented
00103     void operator=( const Self& );      // purposely not implemented
00104 
00105   }; // end class NearestNeighborInterpolator
00106 
00107 
00108 } // end namespace elastix
00109 
00110 #ifndef ITK_MANUAL_INSTANTIATION
00111 #include "elxNearestNeighborInterpolator.hxx"
00112 #endif
00113 
00114 #endif // end #ifndef __elxNearestNeighborInterpolator_h
00115 


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