From b9a3a2358ce87c4ca74ba69921ff327cca9687dc Mon Sep 17 00:00:00 2001
From: Manuel Grizonnet <manuel.grizonnet@cnes.fr>
Date: Thu, 4 Jan 2018 11:03:31 +0100
Subject: [PATCH] BUG: mantis 1504 - fix compilation error with itk 4.13
 related to changes in GetDisplacementField signature

---
 .../Transform/include/otbStreamingWarpImageFilter.txx    | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/Modules/Core/Transform/include/otbStreamingWarpImageFilter.txx b/Modules/Core/Transform/include/otbStreamingWarpImageFilter.txx
index 1d9bf6e7bc..cee9d9bd2d 100644
--- a/Modules/Core/Transform/include/otbStreamingWarpImageFilter.txx
+++ b/Modules/Core/Transform/include/otbStreamingWarpImageFilter.txx
@@ -303,7 +303,16 @@ StreamingWarpImageFilter<TInputImage, TOutputImage, TDisplacementField>
   // second pass on the thread region to mask pixels outside the displacement grid
   const PixelType paddingValue = this->GetEdgePaddingValue();
   OutputImagePointerType outputPtr = this->GetOutput();
+
+  // ITK 4.13 fix const correctness of GetDisplacementField. Use ITK version
+  // number for backward compatibility
+  // Related commit in ITK: https://github.com/InsightSoftwareConsortium/ITK/commit/0070848b91baf69f04893bc3ce85bcf110c3c63a
+  
+  #if (ITK_VERSION_MAJOR >= 4 && ITK_VERSION_MINOR >= 13)
+  const DisplacementFieldType * fieldPtr = this->GetDisplacementField();
+  #else
   DisplacementFieldPointerType fieldPtr = this->GetDisplacementField();
+  #endif
 
   DisplacementFieldRegionType defRegion = fieldPtr->GetLargestPossibleRegion();
 
-- 
GitLab