]> Creatis software - clitk.git/blobdiff - registration/clitkOptNormalizedCorrelationImageToImageMetricFor3DBLUTFFD.txx
Bugfix: Handle treatment plans that contain number of protons
[clitk.git] / registration / clitkOptNormalizedCorrelationImageToImageMetricFor3DBLUTFFD.txx
index 0ee3e6ef635a287086b9f4d9386e535c45eff332..959bfed1afd56d50dca9a3ec725c8f2f306873c6 100644 (file)
@@ -219,7 +219,6 @@ NormalizedCorrelationImageToImageMetricFor3DBLUTFFD<TFixedImage,TMovingImage>
 
   // Set up the parameters in the transform
   this->m_Transform->SetParameters( parameters );
-  this->m_Parameters = parameters;
 
   // MUST BE CALLED TO INITIATE PROCESSING
   this->GetValueMultiThreadedInitiate();
@@ -294,7 +293,6 @@ NormalizedCorrelationImageToImageMetricFor3DBLUTFFD<TFixedImage,TMovingImage>
 
   // Set up the parameters in the transform
   this->m_Transform->SetParameters( parameters );
-  this->m_Parameters = parameters;
 
   // MUST BE CALLED TO INITIATE PROCESSING
   this->GetValueMultiThreadedInitiate();
@@ -381,7 +379,8 @@ NormalizedCorrelationImageToImageMetricFor3DBLUTFFD<TFixedImage,TMovingImage>
   }
 
   // Jacobian should be evaluated at the unmapped (fixed image) point.
-  const TransformJacobianType & jacobian = transform->GetJacobian( fixedImagePoint );
+  TransformJacobianType jacobian;
+  transform->ComputeJacobianWithRespectToParameters( fixedImagePoint, jacobian );
 
 //          for(unsigned int par=0; par<this->m_NumberOfParameters; par++)
 //            {
@@ -446,7 +445,6 @@ NormalizedCorrelationImageToImageMetricFor3DBLUTFFD<TFixedImage,TMovingImage>
 
   // Set up the parameters in the transform
   this->m_Transform->SetParameters( parameters );
-  this->m_Parameters = parameters;
 
   //We need the sums and the value to be calculated first
   value=this->ComputeSums(parameters);
@@ -457,16 +455,16 @@ NormalizedCorrelationImageToImageMetricFor3DBLUTFFD<TFixedImage,TMovingImage>
   }
   memset( derivative.data_block(),
           0,
-          this->m_NumberOfParameters * sizeof(ITK_TYPENAME DerivativeType::ValueType) );
+          this->m_NumberOfParameters * sizeof(typename DerivativeType::ValueType) );
 
   for( unsigned int threadID = 0; threadID<this->m_NumberOfThreads; threadID++ ) {
     memset( m_ThreaderDerivativeF[threadID].data_block(),
             0,
-            this->m_NumberOfParameters * sizeof(ITK_TYPENAME DerivativeType::ValueType) );
+            this->m_NumberOfParameters * sizeof(typename DerivativeType::ValueType) );
 
     memset( m_ThreaderDerivativeM[threadID].data_block(),
             0,
-            this->m_NumberOfParameters * sizeof(ITK_TYPENAME DerivativeType::ValueType) );
+            this->m_NumberOfParameters * sizeof(typename DerivativeType::ValueType) );
   }
 
   // MUST BE CALLED TO INITIATE PROCESSING