go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkDeformationVectorFieldTransform.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 __itkDeformationVectorFieldTransform_H__
00016 #define __itkDeformationVectorFieldTransform_H__
00017 
00018 #include "itkAdvancedBSplineDeformableTransform.h"
00019 
00020 namespace itk
00021 {
00022 
00042 template < class TScalarType = double, unsigned int NDimensions = 3 >
00043 class DeformationVectorFieldTransform
00044   : public AdvancedBSplineDeformableTransform< TScalarType, NDimensions, 0 >
00045 {
00046   public:
00047 
00049     typedef DeformationVectorFieldTransform       Self;
00050     typedef AdvancedBSplineDeformableTransform<
00051       TScalarType, NDimensions, 0 >               Superclass;
00052     typedef SmartPointer< Self >                  Pointer;
00053     typedef SmartPointer< const Self >            ConstPointer;
00054 
00056     itkNewMacro( Self );
00057 
00059     itkTypeMacro( DeformationVectorFieldTransform, AdvancedBSplineDeformableTransform );
00060 
00062     itkStaticConstMacro( SpaceDimension, unsigned int, NDimensions );
00063     itkStaticConstMacro( SplineOrder, unsigned int, Superclass::SplineOrder );
00064 
00066     typedef typename Superclass::ScalarType             ScalarType;
00067     typedef typename Superclass::ParametersType         ParametersType;
00068     typedef typename Superclass::JacobianType           JacobianType;
00069     typedef typename Superclass::InputVectorType        InputVectorType;
00070     typedef typename Superclass::OutputVectorType       OutputVectorType;
00071     typedef typename Superclass::InputCovariantVectorType   InputCovariantVectorType;
00072     typedef typename Superclass::OutputCovariantVectorType  OutputCovariantVectorType;
00073     typedef typename Superclass::InputVnlVectorType     InputVnlVectorType;
00074     typedef typename Superclass::OutputVnlVectorType    OutputVnlVectorType;
00075     typedef typename Superclass::InputPointType         InputPointType;
00076     typedef typename Superclass::OutputPointType        OutputPointType;
00077 
00079     typedef typename Superclass::PixelType              CoefficientPixelType;
00080     typedef typename Superclass::ImageType              CoefficientImageType;
00081     typedef typename Superclass::ImagePointer           CoefficientImagePointer;
00082 
00084     typedef Vector< float,
00085       itkGetStaticConstMacro( SpaceDimension ) >          CoefficientVectorPixelType;
00086     typedef Image< CoefficientVectorPixelType,
00087       itkGetStaticConstMacro( SpaceDimension ) >          CoefficientVectorImageType;
00088     typedef typename CoefficientVectorImageType::Pointer  CoefficientVectorImagePointer;
00089 
00099     virtual void SetCoefficientVectorImage( const CoefficientVectorImageType * vecImage );
00100 
00107     virtual void GetCoefficientVectorImage( CoefficientVectorImagePointer & vecImage ) const;
00108 
00109   protected:
00110 
00112     DeformationVectorFieldTransform();
00114     virtual ~DeformationVectorFieldTransform();
00115 
00116   private:
00117 
00119     DeformationVectorFieldTransform( const Self& ); // purposely not implemented
00121     void operator=( const Self& );                  // purposely not implemented
00122 
00124     CoefficientImagePointer m_Images[ SpaceDimension ];
00125 
00126   }; // end class DeformationVectorFieldTransform
00127 
00128 } // end namespace itk
00129 
00130 
00131 #ifndef ITK_MANUAL_INSTANTIATION
00132 #include "itkDeformationVectorFieldTransform.txx"
00133 #endif
00134 
00135 #endif // end #ifndef __itkDeformationVectorFieldTransform_H__
00136 


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