X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=registration%2FclitkDeformationFieldTransform.h;h=a997d862a83ded735080ddbf5d8597f10c3d459c;hb=afd2671211668e6106886aa59c7bb13a82c48a94;hp=273376b45f23413b1bd63fa4a12a86d23fc14295;hpb=657652a78c2e2717a6f77e027049173442ca29f0;p=clitk.git diff --git a/registration/clitkDeformationFieldTransform.h b/registration/clitkDeformationFieldTransform.h index 273376b..a997d86 100644 --- a/registration/clitkDeformationFieldTransform.h +++ b/registration/clitkDeformationFieldTransform.h @@ -3,7 +3,7 @@ Authors belong to: - University of LYON http://www.universite-lyon.fr/ - - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr + - Léon Bérard cancer center http://www.centreleonberard.fr - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr This software is distributed WITHOUT ANY WARRANTY; without even @@ -14,7 +14,7 @@ - BSD See included LICENSE.txt file - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html -======================================================================-====*/ +===========================================================================**/ #ifndef __clitkDeformationFieldTransform_h #define __clitkDeformationFieldTransform_h #include "clitkList.h" @@ -59,7 +59,65 @@ namespace clitk void SetDeformationField (typename DeformationFieldType::Pointer p){m_DeformationField=p; m_Interpolator->SetInputImage(m_DeformationField);} void SetInterpolator (typename InterpolatorType::Pointer i){ m_Interpolator=i; m_Interpolator->SetInputImage(m_DeformationField);} OutputPointType TransformPoint(const InputPointType &point ) const; - + + // Methods needed to inherit from an itk::Transform which should not be used + // in this class + /** Type of the input parameters. */ + typedef typename Superclass::ParametersType ParametersType; + typedef typename Superclass::ParametersValueType ParametersValueType; + + /** Type of the Jacobian matrix. */ + typedef typename Superclass::JacobianType JacobianType; + + /** Standard vector type for this class. */ + typedef typename Superclass::InputVectorType InputVectorType; + typedef typename Superclass::OutputVectorType OutputVectorType; + + /** Standard covariant vector type for this class */ + typedef typename Superclass::InputCovariantVectorType InputCovariantVectorType; + typedef typename Superclass::OutputCovariantVectorType OutputCovariantVectorType; + + /** Standard vnl_vector type for this class. */ + typedef typename Superclass::InputVnlVectorType InputVnlVectorType; + typedef typename Superclass::OutputVnlVectorType OutputVnlVectorType; + + void SetParameters(const ParametersType&) + { + itkExceptionMacro( << "DeformationFieldTransform doesn't declare SetParameters" ); + } + + void SetFixedParameters(const ParametersType&) + { + itkExceptionMacro( << "DeformationFieldTransform doesn't declare SetFixedParameters" ); + } + + virtual OutputVectorType TransformVector(const InputVectorType &) const + { + itkExceptionMacro(<< "Method not applicable for deformable transform." ); + return OutputVectorType(); + } + + virtual OutputVnlVectorType TransformVector(const InputVnlVectorType &) const + { + itkExceptionMacro(<< "Method not applicable for deformable transform. "); + return OutputVnlVectorType(); + } + + virtual OutputCovariantVectorType TransformCovariantVector(const InputCovariantVectorType &) const + { + itkExceptionMacro(<< "Method not applicable for deformable transfrom. "); + return OutputCovariantVectorType(); + } + + virtual void ComputeJacobianWithRespectToParameters (const InputPointType &p, JacobianType &jacobian) const + { + itkExceptionMacro( << "DeformationFieldTransform doesn't declare ComputeJacobianWithRespectToParameters" ); + } + virtual void ComputeJacobianWithRespectToPosition (const InputPointType &p, JacobianType &jacobian) const + { + itkExceptionMacro( << "DeformationFieldTransform doesn't declare ComputeJacobianWithRespectToPosition" ); + } + protected: DeformationFieldTransform(); ~DeformationFieldTransform(){;}