]> Creatis software - clitk.git/blobdiff - registration/clitkMultipleBSplineDeformableTransform.h
Add one slice for the S1RL support
[clitk.git] / registration / clitkMultipleBSplineDeformableTransform.h
index 93277c31aa76153c2d25a4d2e28caf6ed7db7ceb..5b2ee9eb35686933603bb10b4f22796e1be100b7 100644 (file)
@@ -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,9 @@ namespace clitk
 
     /** Standard parameters container. */
     typedef typename Superclass::ParametersType ParametersType;
+#if ITK_VERSION_MAJOR >= 4
+    typedef typename Superclass::NumberOfParametersType NumberOfParametersType;
+#endif
 
     /** Standard Jacobian container. */
     typedef typename Superclass::JacobianType JacobianType;
@@ -213,10 +216,22 @@ namespace clitk
     }
 
     /** Compute the Jacobian Matrix of the transformation at one point */
+#if ITK_VERSION_MAJOR >= 4
+    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() );
+    }
+#else
     virtual const JacobianType& GetJacobian(const InputPointType  &point ) const;
+#endif
 
     /** Return the number of parameters that completely define the Transfom */
+#if ITK_VERSION_MAJOR >= 4
+    virtual NumberOfParametersType GetNumberOfParameters(void) const;
+#else
     virtual unsigned int GetNumberOfParameters(void) const;
+#endif
 
     /** Return the number of parameters per dimension */
     unsigned int GetNumberOfParametersPerDimension(void) const;
@@ -225,6 +240,8 @@ namespace clitk
 
     typedef  clitk::BSplineDeformableTransform<TCoordRep,InputDimension, OutputDimension > TransformType;
 
+    const std::vector<typename TransformType::Pointer> &GetTransforms() { return m_trans; }
+
   protected:
 
     void PrintSelf(std::ostream &os, itk::Indent indent) const;
@@ -261,6 +278,9 @@ namespace clitk
     std::vector<ParametersType>                     m_parameters;
     mutable std::vector<CoefficientImagePointer>    m_CoefficientImages;
     mutable int                                     m_LastJacobian;
+#if ITK_VERSION_MAJOR >= 4
+    mutable JacobianType                            m_SharedDataBSplineJacobian;
+#endif
 
     void InitJacobian();
     // FIXME it seems not used