X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=registration%2FclitkPointListTransform.h;h=d98c525d6abd3c114454c6e4fccba22dfeec968e;hb=fa358ee6738c92950cd9e6c45f55dda6e9b4576e;hp=3146f80c62e046980d25202b179e10fccab5caa3;hpb=657652a78c2e2717a6f77e027049173442ca29f0;p=clitk.git diff --git a/registration/clitkPointListTransform.h b/registration/clitkPointListTransform.h index 3146f80..d98c525 100644 --- a/registration/clitkPointListTransform.h +++ b/registration/clitkPointListTransform.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 __clitkPointListTransform_h #define __clitkPointListTransform_h #include "clitkList.h" @@ -67,7 +67,73 @@ namespace clitk PointListType GetCorrespondingPointList(const InputPointType &inputPoint) const; 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( << "PointListTransform doesn't declare SetParameters" ); + } + + void SetFixedParameters(const ParametersType&) + { + itkExceptionMacro( << "PointListTransform 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(); + } + +#if ITK_VERSION_MAJOR >= 4 + virtual void ComputeJacobianWithRespectToParameters (const InputPointType &p, JacobianType &jacobian) const + { + itkExceptionMacro( << "PointListTransform doesn't declare ComputeJacobianWithRespectToParameters" ); + } + virtual void ComputeJacobianWithRespectToPosition (const InputPointType &p, JacobianType &jacobian) const + { + itkExceptionMacro( << "PointListTransform doesn't declare ComputeJacobianWithRespectToPosition" ); + } +#else + virtual const JacobianType& GetJacobian(const InputPointType &point ) const + { + itkExceptionMacro( << "PointListTransform doesn't declare GetJacobian" ); + return this->m_Jacobian; + } +#endif + protected: PointListTransform(); ~PointListTransform(){;}