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 __clitkComposeVFFilter_txx
#define __clitkComposeVFFilter_txx
#include "clitkComposeVFFilter.h"
//=========================================================================================================================
//update the output for the outputRegionForThread
+#if ITK_VERSION_MAJOR >= 4
+ template<class InputImageType, class OutputImageType>
+ void ComposeVFFilter<InputImageType, OutputImageType>::ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread, itk::ThreadIdType threadId )
+#else
template<class InputImageType, class OutputImageType>
void ComposeVFFilter<InputImageType, OutputImageType>::ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread, int threadId )
+#endif
{
//Get pointer to the output
// get neighbor index and overlap fraction
- for( dim = 0; dim < 3; dim++ )
+ bool neighbIndexSupZero = 1;
+ for( dim = 0; dim < ImageDimension; dim++ )
{
if ( upper & 1 )
{
neighIndex[dim] = baseIndex[dim];
overlap *= 1.0 - distance[dim];
}
+ if (neighIndex[dim] < 0)
+ neighbIndexSupZero = 0;
upper >>= 1;
}
//JV shouldn't we verify that the index is not over the upper border instead of zero?
// Set neighbor value only if overlap is not zero and index is still in image
- if( overlap>0.0 && neighIndex[0]>=0 && neighIndex[1]>=0 && neighIndex[2]>=0 )
+ if ( overlap>0.0 && neighbIndexSupZero )
{
//what to store? the weighted displacement vector of Input2?
totalDisplacement+=m_Input2->GetPixel(neighIndex)*overlap;