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::BulkTransformType      BulkTransformType;
00080     typedef typename Superclass::BulkTransformPointer   BulkTransformPointer;
00081 
00083     typedef typename Superclass::PixelType              CoefficientPixelType;
00084     typedef typename Superclass::ImageType              CoefficientImageType;
00085     typedef typename Superclass::ImagePointer           CoefficientImagePointer;
00086 
00088     typedef Vector< float,
00089       itkGetStaticConstMacro( SpaceDimension ) >          CoefficientVectorPixelType;
00090     typedef Image< CoefficientVectorPixelType,
00091       itkGetStaticConstMacro( SpaceDimension ) >          CoefficientVectorImageType;
00092     typedef typename CoefficientVectorImageType::Pointer  CoefficientVectorImagePointer;
00093 
00103     virtual void SetCoefficientVectorImage( const CoefficientVectorImageType * vecImage );
00104 
00111     virtual void GetCoefficientVectorImage( CoefficientVectorImagePointer & vecImage ) const;
00112 
00113   protected:
00114 
00116     DeformationVectorFieldTransform();
00118     virtual ~DeformationVectorFieldTransform();
00119 
00120   private:
00121 
00123     DeformationVectorFieldTransform( const Self& ); // purposely not implemented
00125     void operator=( const Self& );                  // purposely not implemented
00126 
00128     CoefficientImagePointer m_Images[ SpaceDimension ];
00129 
00130   }; // end class DeformationVectorFieldTransform
00131 
00132 } // end namespace itk
00133 
00134 
00135 #ifndef ITK_MANUAL_INSTANTIATION
00136 #include "itkDeformationVectorFieldTransform.txx"
00137 #endif
00138 
00139 #endif // end #ifndef __itkDeformationVectorFieldTransform_H__
00140 


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