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 
00047   template < class TElastix >
00048     class TranslationTransformElastix:
00049       public AdvancedCombinationTransform<
00050           ITK_TYPENAME elx::TransformBase<TElastix>::CoordRepType,
00051           elx::TransformBase<TElastix>::FixedImageDimension > ,
00052       public elx::TransformBase<TElastix>
00053   {
00054   public:
00055 
00057     typedef TranslationTransformElastix                     Self;
00058 
00059     typedef AdvancedCombinationTransform<
00060       typename elx::TransformBase<TElastix>::CoordRepType,
00061       elx::TransformBase<TElastix>::FixedImageDimension >   Superclass1;
00062 
00063     typedef elx::TransformBase<TElastix>                    Superclass2;
00064 
00067     typedef AdvancedTranslationTransform<
00068       typename elx::TransformBase<TElastix>::CoordRepType,
00069       elx::TransformBase<TElastix>::FixedImageDimension >   TranslationTransformType;
00070 
00071     typedef SmartPointer<Self>                              Pointer;
00072     typedef SmartPointer<const Self>                        ConstPointer;
00073 
00075     itkNewMacro( Self );
00076 
00078     itkTypeMacro( TranslationTransformElastix, AdvancedCombinationTransform );
00079 
00084     elxClassNameMacro( "TranslationTransform" );
00085 
00087     itkStaticConstMacro( SpaceDimension, unsigned int, Superclass2::FixedImageDimension );
00088 
00090     typedef typename Superclass1::ScalarType                ScalarType;
00091     typedef typename Superclass1::ParametersType            ParametersType;
00092     typedef typename Superclass1::JacobianType              JacobianType;
00093     typedef typename Superclass1::InputVectorType           InputVectorType;
00094     typedef typename Superclass1::OutputVectorType          OutputVectorType;
00095     typedef typename Superclass1::InputCovariantVectorType  InputCovariantVectorType;
00096     typedef typename Superclass1::OutputCovariantVectorType OutputCovariantVectorType;
00097     typedef typename Superclass1::InputVnlVectorType        InputVnlVectorType;
00098     typedef typename Superclass1::OutputVnlVectorType       OutputVnlVectorType;
00099     typedef typename Superclass1::InputPointType            InputPointType;
00100     typedef typename Superclass1::OutputPointType           OutputPointType;
00101 
00103     typedef typename Superclass2::ElastixType               ElastixType;
00104     typedef typename Superclass2::ElastixPointer            ElastixPointer;
00105     typedef typename Superclass2::ConfigurationType         ConfigurationType;
00106     typedef typename Superclass2::ConfigurationPointer      ConfigurationPointer;
00107     typedef typename Superclass2::RegistrationType          RegistrationType;
00108     typedef typename Superclass2::RegistrationPointer       RegistrationPointer;
00109     typedef typename Superclass2::CoordRepType              CoordRepType;
00110     typedef typename Superclass2::FixedImageType            FixedImageType;
00111     typedef typename Superclass2::MovingImageType           MovingImageType;
00112     typedef typename Superclass2::ITKBaseType               ITKBaseType;
00113     typedef typename Superclass2::CombinationTransformType  CombinationTransformType;
00114 
00116     typedef TranslationTransformInitializer<
00117       TranslationTransformType,
00118       FixedImageType,
00119       MovingImageType>                                      TransformInitializerType;
00120     typedef typename TransformInitializerType::Pointer      TransformInitializerPointer;
00121     typedef typename TranslationTransformType::Pointer      TranslationTransformPointer;
00122 
00126     virtual void BeforeRegistration(void);
00127 
00134     virtual void InitializeTransform(void);
00135 
00136   protected:
00137 
00139     TranslationTransformElastix();
00141     virtual ~TranslationTransformElastix() {};
00142 
00143     TranslationTransformPointer m_TranslationTransform;
00144 
00145   private:
00146 
00148     TranslationTransformElastix( const Self& ); // purposely not implemented
00150     void operator=( const Self& );              // purposely not implemented
00151 
00152   }; // end class TranslationTransformElastix
00153 
00154 
00155 } // end namespace elastix
00156 
00157 #ifndef ITK_MANUAL_INSTANTIATION
00158 #include "elxTranslationTransform.hxx"
00159 #endif
00160 
00161 #endif // end #ifndef __elxTranslationTransform_H_


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