]> Creatis software - clitk.git/blobdiff - registration/clitkBSplineDeformableTransform.h
Debug RTStruct conversion with empty struc
[clitk.git] / registration / clitkBSplineDeformableTransform.h
index 5a084c9d841c2a3ffec678936666c41d1f0d9772..8f5a278c6ad0930115070ddc4ae6463a2a5ffa4d 100644 (file)
@@ -65,6 +65,7 @@ namespace clitk
 
     /** Standard parameters container. */
     typedef typename Superclass::ParametersType ParametersType;
+    typedef typename Superclass::NumberOfParametersType NumberOfParametersType;
 
     /** Standard Jacobian container. */
     typedef typename Superclass::JacobianType JacobianType;
@@ -254,10 +255,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;
@@ -363,13 +368,13 @@ namespace clitk
 
     // VD Add MultipleBSplineDeformableTransform as friend to facilitate wrapping
     friend class MultipleBSplineDeformableTransform<TCoordRep, NInputDimensions, NOutputDimensions>;
-
+    mutable JacobianType                            m_SharedDataBSplineJacobian;
   }; //class BSplineDeformableTransform
 
 
 }  // namespace itk
 
-#if ITK_TEMPLATE_TXX
+#ifndef ITK_MANUAL_INSTANTIATION
 # include "clitkBSplineDeformableTransform.txx"
 #endif