X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=registration%2FclitkBSplineDeformableTransform.h;h=5a084c9d841c2a3ffec678936666c41d1f0d9772;hb=75d6e9c40542d37c9f1c1ea5c9b0f2f937ea91db;hp=2aeaac654ed81c492ead97ece721e911137096fe;hpb=657652a78c2e2717a6f77e027049173442ca29f0;p=clitk.git diff --git a/registration/clitkBSplineDeformableTransform.h b/registration/clitkBSplineDeformableTransform.h index 2aeaac6..5a084c9 100644 --- a/registration/clitkBSplineDeformableTransform.h +++ b/registration/clitkBSplineDeformableTransform.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 __clitkBSplineDeformableTransform_h #define __clitkBSplineDeformableTransform_h #include "clitkVectorBSplineResampleImageFunctionWithLUT.h" @@ -27,6 +27,9 @@ namespace clitk { + // Forward declaration needed for friendship + template + class ITK_EXPORT MultipleBSplineDeformableTransform; template < class TCoordRep = double, // Data type for scalars, coordinate representation,vectors @@ -186,7 +189,7 @@ namespace clitk void SetBulkTransform(BulkTransformPointer b){m_BulkTransform=b;} BulkTransformPointer GetBulkTransform(void) {return m_BulkTransform;} - //Set mask, inside transform applies, outside zero, real pointer + // Set mask, inside transform applies, outside zero, real pointer void SetMask(MaskPointer m){m_Mask=m;} MaskPointer GetMask(void){return m_Mask;} // itkSetConstObjectMacro( Mask, MaskType ); @@ -338,6 +341,7 @@ namespace clitk mutable IteratorType m_Iterator[OutputDimension]; mutable JacobianPixelType m_ZeroVector; mutable ContinuousIndexType m_Index; + mutable bool m_NeedResetJacobian; /** Keep a pointer to the input parameters. */ const ParametersType * m_InputParametersPointer; @@ -351,6 +355,14 @@ namespace clitk /** Check if a continuous index is inside the valid region. */ bool InsideValidRegion( const ContinuousIndexType& index ) const; + // VD Use external data container for JacobianImage + unsigned SetJacobianImageData(JacobianPixelType * jacobianDataPointer, unsigned dim); + + // VD Reset Jacobian + void ResetJacobian() const; + + // VD Add MultipleBSplineDeformableTransform as friend to facilitate wrapping + friend class MultipleBSplineDeformableTransform; }; //class BSplineDeformableTransform