go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkCyclicGridScheduleComputer.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 __itkCyclicGridScheduleComputer_H__
00016 #define __itkCyclicGridScheduleComputer_H__
00017 
00018 #include "itkImageBase.h"
00019 #include "itkTransform.h"
00020 #include "itkGridScheduleComputer.h"
00021 
00022 namespace itk
00023 {
00024 
00037 template < typename TTransformScalarType, unsigned int VImageDimension >
00038 class ITK_EXPORT CyclicGridScheduleComputer
00039   : public GridScheduleComputer< TTransformScalarType, VImageDimension >
00040 {
00041 public:
00042 
00044   typedef CyclicGridScheduleComputer          Self;
00045   typedef GridScheduleComputer<
00046       TTransformScalarType, VImageDimension>  Superclass;
00047   typedef SmartPointer< Self >                Pointer;
00048   typedef SmartPointer< const Self >          ConstPointer;
00049 
00051   itkNewMacro( Self );
00052 
00054   itkTypeMacro( CyclicGridScheduleComputer, GridScheduleComputer );
00055 
00057   itkStaticConstMacro( Dimension, unsigned int, VImageDimension );
00058 
00060   typedef TTransformScalarType                  TransformScalarType;
00061   typedef ImageBase<
00062     itkGetStaticConstMacro( Dimension ) >       ImageBaseType;
00063   typedef typename ImageBaseType::PointType     PointType;
00064   typedef typename ImageBaseType::PointType     OriginType;
00065   typedef typename ImageBaseType::SpacingType   SpacingType;
00066   typedef typename ImageBaseType::DirectionType DirectionType;
00067   typedef typename ImageBaseType::SizeType      SizeType;
00068   typedef typename ImageBaseType::SizeValueType SizeValueType;
00069   typedef typename ImageBaseType::RegionType    RegionType;
00070   typedef SpacingType                           GridSpacingFactorType;
00071   typedef std::vector< OriginType >             VectorOriginType;
00072   typedef std::vector< SpacingType >            VectorSpacingType;
00073   typedef std::vector< RegionType >             VectorRegionType;
00074   typedef std::vector< GridSpacingFactorType >  VectorGridSpacingFactorType;
00075 
00077   typedef Transform<
00078     TransformScalarType,
00079     itkGetStaticConstMacro( Dimension ),
00080     itkGetStaticConstMacro( Dimension ) >       TransformType;
00081   typedef typename TransformType::Pointer       TransformPointer;
00082   typedef typename TransformType::ConstPointer  TransformConstPointer;
00083 
00085   virtual void ComputeBSplineGrid( void );
00086 
00087 protected:
00088 
00090   CyclicGridScheduleComputer();
00091 
00093   virtual ~CyclicGridScheduleComputer() {};
00094 
00095 private:
00096 
00097   CyclicGridScheduleComputer( const Self& );  // purposely not implemented
00098   void operator=( const Self& );        // purposely not implemented
00099 
00100 }; // end class CyclicGridScheduleComputer
00101 
00102 } // end namespace itk
00103 
00104 #ifndef ITK_MANUAL_INSTANTIATION
00105 #include "itkCyclicGridScheduleComputer.txx"
00106 #endif
00107 
00108 #endif // end #ifndef __itkCyclicGridScheduleComputer_H__
00109 


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