//Get pointer to the output
typename OutputImageType::Pointer outputPtr = this->GetOutput();
- typename OutputImageType::SizeType size=outputPtr->GetLargestPossibleRegion().GetSize();
+ //typename OutputImageType::SizeType size=outputPtr->GetLargestPossibleRegion().GetSize();
//Iterators over input and deformation field
typedef itk::ImageRegionConstIteratorWithIndex<InputImageType> InputImageIteratorType;
//define some temp variables
signed long baseIndex[ImageDimension];
double distance[ImageDimension];
+ for(unsigned int i=0; i<ImageDimension; i++) distance[i] = 0.0; // to avoid warning
unsigned int dim, counter, upper;
double overlap, totalOverlap;
typename OutputImageType::IndexType neighIndex;
upper = counter; // each bit indicates upper/lower neighbour
// get neighbor index and overlap fraction
- for( dim = 0; dim < 3; dim++ ) {
+ for( dim = 0; dim < ImageDimension; dim++ ) {
if ( upper & 1 ) {
neighIndex[dim] = baseIndex[dim] + 1;
overlap *= distance[dim];
typename HelperClass1Type::Pointer helper1=HelperClass1Type::New();
//Set input
- if(m_NumberOfThreadsIsGiven)helper1->SetNumberOfThreads(m_NumberOfThreads);
+ if(m_NumberOfThreadsIsGiven) {
+#if ITK_VERSION_MAJOR <= 4
+ helper1->SetNumberOfThreads(m_NumberOfThreads);
+#else
+ helper1->SetNumberOfWorkUnits(m_NumberOfWorkUnits);
+#endif
+ }
helper1->SetInput(inputPtr);
helper1->SetDeformationField(m_DeformationField);
helper1->SetWeights(weights);
typename HelperClass2Type::Pointer helper2=HelperClass2Type::New();
//Set temporary output as input
- if(m_NumberOfThreadsIsGiven)helper2->SetNumberOfThreads(m_NumberOfThreads);
+ if(m_NumberOfThreadsIsGiven) {
+#if ITK_VERSION_MAJOR <= 4
+ helper2->SetNumberOfThreads(m_NumberOfThreads);
+#else
+ helper2->SetNumberOfWorkUnits(m_NumberOfWorkUnits);
+#endif
+ }
helper2->SetInput(temp);
helper2->SetWeights(weights);
helper2->SetEdgePaddingValue(m_EdgePaddingValue);