go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxMovingRecursivePyramid.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 __elxMovingRecursivePyramid_h
00016 #define __elxMovingRecursivePyramid_h
00017 
00018 #include "itkRecursiveMultiResolutionPyramidImageFilter.h"
00019 #include "elxIncludes.h"
00020 
00021 namespace elastix
00022 {
00023 using namespace itk;
00024 
00036   template <class TElastix>
00037     class MovingRecursivePyramid :
00038     public
00039       RecursiveMultiResolutionPyramidImageFilter<
00040         ITK_TYPENAME MovingImagePyramidBase<TElastix>::InputImageType,
00041         ITK_TYPENAME MovingImagePyramidBase<TElastix>::OutputImageType >,
00042     public
00043       MovingImagePyramidBase<TElastix>
00044   {
00045   public:
00046 
00048     typedef MovingRecursivePyramid                                    Self;
00049     typedef RecursiveMultiResolutionPyramidImageFilter<
00050         typename MovingImagePyramidBase<TElastix>::InputImageType,
00051         typename MovingImagePyramidBase<TElastix>::OutputImageType >  Superclass1;
00052     typedef MovingImagePyramidBase<TElastix>                          Superclass2;
00053     typedef SmartPointer<Self>                                        Pointer;
00054     typedef SmartPointer<const Self>                                  ConstPointer;
00055 
00057     itkNewMacro( Self );
00058 
00060     itkTypeMacro( MovingRecursivePyramid, RecursiveMultiResolutionPyramidImageFilter );
00061 
00066     elxClassNameMacro( "MovingRecursiveImagePyramid" );
00067 
00069     itkStaticConstMacro( ImageDimension, unsigned int, Superclass1::ImageDimension );
00070 
00072     typedef typename Superclass1::InputImageType            InputImageType;
00073     typedef typename Superclass1::OutputImageType           OutputImageType;
00074     typedef typename Superclass1::InputImagePointer         InputImagePointer;
00075     typedef typename Superclass1::OutputImagePointer        OutputImagePointer;
00076     typedef typename Superclass1::InputImageConstPointer    InputImageConstPointer;
00077 
00079     typedef typename Superclass2::ElastixType           ElastixType;
00080     typedef typename Superclass2::ElastixPointer        ElastixPointer;
00081     typedef typename Superclass2::ConfigurationType     ConfigurationType;
00082     typedef typename Superclass2::ConfigurationPointer  ConfigurationPointer;
00083     typedef typename Superclass2::RegistrationType      RegistrationType;
00084     typedef typename Superclass2::RegistrationPointer   RegistrationPointer;
00085     typedef typename Superclass2::ITKBaseType           ITKBaseType;
00086 
00087   protected:
00088 
00090     MovingRecursivePyramid() {}
00092     virtual ~MovingRecursivePyramid() {}
00093 
00094   private:
00095 
00097     MovingRecursivePyramid( const Self& );  // purposely not implemented
00099     void operator=( const Self& );          // purposely not implemented
00100 
00101   }; // end class MovingRecursivePyramid
00102 
00103 
00104 } // end namespace elastix
00105 
00106 #ifndef ITK_MANUAL_INSTANTIATION
00107 #include "elxMovingRecursivePyramid.hxx"
00108 #endif
00109 
00110 #endif // end #ifndef __elxMovingRecursivePyramid_h


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