X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=registration%2FclitkMultipleBSplineDeformableTransform.h;h=ae9f16ff420def695c58a909f2903af05f4d56ac;hb=3504c907c279d7f51f0e1d81eead7243135794a5;hp=93277c31aa76153c2d25a4d2e28caf6ed7db7ceb;hpb=46e15948191b583a7333683663c3975a279274a6;p=clitk.git diff --git a/registration/clitkMultipleBSplineDeformableTransform.h b/registration/clitkMultipleBSplineDeformableTransform.h index 93277c3..ae9f16f 100644 --- a/registration/clitkMultipleBSplineDeformableTransform.h +++ b/registration/clitkMultipleBSplineDeformableTransform.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 __clitkMultipleBSplineDeformableTransform_h #define __clitkMultipleBSplineDeformableTransform_h @@ -59,6 +59,7 @@ namespace clitk /** Standard parameters container. */ typedef typename Superclass::ParametersType ParametersType; + typedef typename Superclass::NumberOfParametersType NumberOfParametersType; /** Standard Jacobian container. */ typedef typename Superclass::JacobianType JacobianType; @@ -213,10 +214,14 @@ namespace clitk } /** Compute the Jacobian Matrix of the transformation at one point */ - virtual const JacobianType& GetJacobian(const InputPointType &point ) const; + virtual void ComputeJacobianWithRespectToParameters (const InputPointType &p, JacobianType &jacobian) const; + virtual void ComputeJacobianWithRespectToPosition (const InputPointType &p, JacobianType &jacobian) const + { + itkExceptionMacro( "ComputeJacobianWithRespectToPosition not yet implemented for " << this->GetNameOfClass() ); + } /** Return the number of parameters that completely define the Transfom */ - virtual unsigned int GetNumberOfParameters(void) const; + virtual NumberOfParametersType GetNumberOfParameters(void) const; /** Return the number of parameters per dimension */ unsigned int GetNumberOfParametersPerDimension(void) const; @@ -225,6 +230,8 @@ namespace clitk typedef clitk::BSplineDeformableTransform TransformType; + const std::vector &GetTransforms() { return m_trans; } + protected: void PrintSelf(std::ostream &os, itk::Indent indent) const; @@ -261,6 +268,7 @@ namespace clitk std::vector m_parameters; mutable std::vector m_CoefficientImages; mutable int m_LastJacobian; + mutable JacobianType m_SharedDataBSplineJacobian; void InitJacobian(); // FIXME it seems not used @@ -269,7 +277,7 @@ namespace clitk } // namespace clitk -#if ITK_TEMPLATE_TXX +#ifndef ITK_MANUAL_INSTANTIATION # include "clitkMultipleBSplineDeformableTransform.txx" #endif