go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxReducedDimensionBSplineInterpolator.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 __elxReducedDimensionBSplineInterpolator_h
00016 #define __elxReducedDimensionBSplineInterpolator_h
00017 
00018 #include "itkReducedDimensionBSplineInterpolateImageFunction.h"
00019 #include "elxIncludes.h"
00020 
00021 namespace elastix
00022 {
00023 
00024 using namespace itk;
00025 
00046   template < class TElastix >
00047     class ReducedDimensionBSplineInterpolator :
00048     public
00049       ReducedDimensionBSplineInterpolateImageFunction<
00050         ITK_TYPENAME InterpolatorBase<TElastix>::InputImageType,
00051         ITK_TYPENAME InterpolatorBase<TElastix>::CoordRepType,
00052         double > , //CoefficientType
00053     public
00054       InterpolatorBase<TElastix>
00055   {
00056   public:
00057 
00059     typedef ReducedDimensionBSplineInterpolator  Self;
00060     typedef ReducedDimensionBSplineInterpolateImageFunction<
00061       typename InterpolatorBase<TElastix>::InputImageType,
00062       typename InterpolatorBase<TElastix>::CoordRepType,
00063       double >                                  Superclass1;
00064     typedef InterpolatorBase<TElastix>          Superclass2;
00065     typedef SmartPointer<Self>                  Pointer;
00066     typedef SmartPointer<const Self>            ConstPointer;
00067 
00069     itkNewMacro(Self);
00070 
00072     itkTypeMacro( ReducedDimensionBSplineInterpolator, ReducedDimensionBSplineInterpolateImageFunction );
00073 
00078     elxClassNameMacro( "ReducedDimensionBSplineInterpolator" );
00079 
00081     itkStaticConstMacro( ImageDimension, unsigned int, Superclass1::ImageDimension );
00082 
00084     typedef typename Superclass1::OutputType                OutputType;
00085     typedef typename Superclass1::InputImageType            InputImageType;
00086     typedef typename Superclass1::IndexType                 IndexType;
00087     typedef typename Superclass1::ContinuousIndexType       ContinuousIndexType;
00088     typedef typename Superclass1::PointType                 PointType;
00089     typedef typename Superclass1::Iterator                  Iterator;
00090     typedef typename Superclass1::CoefficientDataType       CoefficientDataType;
00091     typedef typename Superclass1::CoefficientImageType      CoefficientImageType;
00092     typedef typename Superclass1::CoefficientFilter         CoefficientFilter;
00093     typedef typename Superclass1::CoefficientFilterPointer  CoefficientFilterPointer;
00094     typedef typename Superclass1::CovariantVectorType       CovariantVectorType;
00095 
00097     typedef typename Superclass2::ElastixType               ElastixType;
00098     typedef typename Superclass2::ElastixPointer            ElastixPointer;
00099     typedef typename Superclass2::ConfigurationType         ConfigurationType;
00100     typedef typename Superclass2::ConfigurationPointer      ConfigurationPointer;
00101     typedef typename Superclass2::RegistrationType          RegistrationType;
00102     typedef typename Superclass2::RegistrationPointer       RegistrationPointer;
00103     typedef typename Superclass2::ITKBaseType               ITKBaseType;
00104 
00108     virtual void BeforeEachResolution(void);
00109 
00110   protected:
00111 
00113     ReducedDimensionBSplineInterpolator() {}
00115     virtual ~ReducedDimensionBSplineInterpolator() {}
00116 
00117   private:
00118 
00120     ReducedDimensionBSplineInterpolator( const Self& ); // purposely not implemented
00122     void operator=( const Self& );      // purposely not implemented
00123 
00124   }; // end class ReducedDimensionBSplineInterpolator
00125 
00126 
00127 } // end namespace elastix
00128 
00129 #ifndef ITK_MANUAL_INSTANTIATION
00130 #include "elxReducedDimensionBSplineInterpolator.hxx"
00131 #endif
00132 
00133 #endif // end #ifndef __elxReducedDimensionBSplineInterpolator_h
00134 


Generated on 24-10-2011 for elastix by doxygen 1.7.4 elastix logo