go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxTranslationTransform.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 __elxTranslationTransform_H_
00016 #define __elxTranslationTransform_H_
00017 
00018 #include "itkAdvancedTranslationTransform.h"
00019 #include "itkTranslationTransformInitializer.h"
00020 #include "elxIncludes.h"
00021 
00022 namespace elastix
00023 {
00024   using namespace itk;
00025 
00043   template < class TElastix >
00044     class TranslationTransformElastix:
00045       public AdvancedCombinationTransform<
00046           ITK_TYPENAME elx::TransformBase<TElastix>::CoordRepType,
00047           elx::TransformBase<TElastix>::FixedImageDimension > ,
00048       public elx::TransformBase<TElastix>
00049   {
00050   public:
00051 
00053     typedef TranslationTransformElastix                     Self;
00054 
00055     typedef AdvancedCombinationTransform<
00056       typename elx::TransformBase<TElastix>::CoordRepType,
00057       elx::TransformBase<TElastix>::FixedImageDimension >   Superclass1;
00058 
00059     typedef elx::TransformBase<TElastix>                    Superclass2;
00060 
00063     typedef AdvancedTranslationTransform<
00064       typename elx::TransformBase<TElastix>::CoordRepType,
00065       elx::TransformBase<TElastix>::FixedImageDimension >   TranslationTransformType;
00066 
00067     typedef SmartPointer<Self>                              Pointer;
00068     typedef SmartPointer<const Self>                        ConstPointer;
00069 
00071     itkNewMacro( Self );
00072 
00074     itkTypeMacro( TranslationTransformElastix, AdvancedCombinationTransform );
00075 
00080     elxClassNameMacro( "TranslationTransform" );
00081 
00083     itkStaticConstMacro( SpaceDimension, unsigned int, Superclass2::FixedImageDimension );
00084 
00086     typedef typename Superclass1::ScalarType                ScalarType;
00087     typedef typename Superclass1::ParametersType            ParametersType;
00088     typedef typename Superclass1::JacobianType              JacobianType;
00089     typedef typename Superclass1::InputVectorType           InputVectorType;
00090     typedef typename Superclass1::OutputVectorType          OutputVectorType;
00091     typedef typename Superclass1::InputCovariantVectorType  InputCovariantVectorType;
00092     typedef typename Superclass1::OutputCovariantVectorType OutputCovariantVectorType;
00093     typedef typename Superclass1::InputVnlVectorType        InputVnlVectorType;
00094     typedef typename Superclass1::OutputVnlVectorType       OutputVnlVectorType;
00095     typedef typename Superclass1::InputPointType            InputPointType;
00096     typedef typename Superclass1::OutputPointType           OutputPointType;
00097 
00099     typedef typename Superclass2::ElastixType               ElastixType;
00100     typedef typename Superclass2::ElastixPointer            ElastixPointer;
00101     typedef typename Superclass2::ConfigurationType         ConfigurationType;
00102     typedef typename Superclass2::ConfigurationPointer      ConfigurationPointer;
00103     typedef typename Superclass2::RegistrationType          RegistrationType;
00104     typedef typename Superclass2::RegistrationPointer       RegistrationPointer;
00105     typedef typename Superclass2::CoordRepType              CoordRepType;
00106     typedef typename Superclass2::FixedImageType            FixedImageType;
00107     typedef typename Superclass2::MovingImageType           MovingImageType;
00108     typedef typename Superclass2::ITKBaseType               ITKBaseType;
00109     typedef typename Superclass2::CombinationTransformType  CombinationTransformType;
00110 
00112     typedef TranslationTransformInitializer<
00113       TranslationTransformType,
00114       FixedImageType,
00115       MovingImageType>                                      TransformInitializerType;
00116     typedef typename TransformInitializerType::Pointer      TransformInitializerPointer;
00117     typedef typename TranslationTransformType::Pointer      TranslationTransformPointer;
00118 
00122     virtual void BeforeRegistration(void);
00123 
00130     virtual void InitializeTransform(void);
00131 
00132   protected:
00133 
00135     TranslationTransformElastix();
00137     virtual ~TranslationTransformElastix() {};
00138 
00139     TranslationTransformPointer m_TranslationTransform;
00140 
00141   private:
00142 
00144     TranslationTransformElastix( const Self& ); // purposely not implemented
00146     void operator=( const Self& );              // purposely not implemented
00147 
00148   }; // end class TranslationTransformElastix
00149 
00150 
00151 } // end namespace elastix
00152 
00153 #ifndef ITK_MANUAL_INSTANTIATION
00154 #include "elxTranslationTransform.hxx"
00155 #endif
00156 
00157 #endif // end #ifndef __elxTranslationTransform_H_


Generated on 11-05-2011 for elastix by doxygen 1.7.4 elastix logo