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
- 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"
namespace clitk
{
+ // Forward declaration needed for friendship
+ template <class TCoordRep, unsigned int NInputDimensions, unsigned int NOutputDimensions>
+ class ITK_EXPORT MultipleBSplineDeformableTransform;
template <
class TCoordRep = double, // Data type for scalars, coordinate representation,vectors
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 );
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;
/** 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<TCoordRep, NInputDimensions, NOutputDimensions>;
}; //class BSplineDeformableTransform