From 37b5cf2d03578a894dbcedda95550b1234e24f93 Mon Sep 17 00:00:00 2001
From: Julien Michel <julien.michel@orfeo-toolbox.org>
Date: Thu, 1 Mar 2012 16:55:29 +0100
Subject: [PATCH] ENH: Allowing access to functor with parameters

---
 .../otbPixelWiseBlockMatchingImageFilter.h       | 16 +++++++++++++++-
 .../otbPixelWiseBlockMatchingImageFilter.txx     |  5 -----
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/Code/DisparityMap/otbPixelWiseBlockMatchingImageFilter.h b/Code/DisparityMap/otbPixelWiseBlockMatchingImageFilter.h
index c81b69efd5..4fc9c9d115 100644
--- a/Code/DisparityMap/otbPixelWiseBlockMatchingImageFilter.h
+++ b/Code/DisparityMap/otbPixelWiseBlockMatchingImageFilter.h
@@ -247,7 +247,6 @@ public:
   itkSetMacro(MaximumVerticalDisparity,int);
   itkGetConstReferenceMacro(MaximumVerticalDisparity,int);
 
-
   itkSetMacro(Minimize, bool);
   itkGetConstReferenceMacro(Minimize,bool);
   itkBooleanMacro(Minimize);
@@ -264,6 +263,18 @@ public:
   itkSetMacro(InitVerticalDisparity,int);
   itkGetConstReferenceMacro(InitVerticalDisparity,int);
   
+  /** Get the functor for parameters setting */
+  BlockMatchingFunctorType &  GetFunctor()
+  {
+    return m_Functor;
+  }
+
+  /** Get the functor (const version) */
+  const BlockMatchingFunctorType &  GetFunctor() const
+  {
+    return m_Functor;
+  }
+
   /** Set initial horizontal disparity field (optional, override m_InitHorizontalDisparity) */
   void SetHorizontalDisparityInput( const TOutputDisparityImage * hfield);
 
@@ -314,6 +325,9 @@ private:
   
   /** The exploration radius for disparities (used if non null) */
   SizeType                      m_ExplorationRadius;
+
+  /** Block-matching functor */
+  BlockMatchingFunctorType      m_Functor;  
   
   /** Initial horizontal disparity (0 by default, used if an exploration radius is set) */
   int                           m_InitHorizontalDisparity;
diff --git a/Code/DisparityMap/otbPixelWiseBlockMatchingImageFilter.txx b/Code/DisparityMap/otbPixelWiseBlockMatchingImageFilter.txx
index a988ec94aa..2a496139fe 100644
--- a/Code/DisparityMap/otbPixelWiseBlockMatchingImageFilter.txx
+++ b/Code/DisparityMap/otbPixelWiseBlockMatchingImageFilter.txx
@@ -471,8 +471,6 @@ TOutputDisparityImage,TMaskImage,TBlockMatchingFunctor>
   // account for pixels that are out of range for a given disparity
   itk::ProgressReporter progress(this, threadId, (m_MaximumHorizontalDisparity - m_MinimumHorizontalDisparity + 1)*(m_MaximumVerticalDisparity - m_MinimumVerticalDisparity + 1));
 
-  // Define the block matching functor
-  TBlockMatchingFunctor bmFunctor;
   
   // Check if we use initial disparities and exploration radius
   bool useExplorationRadius = false;
@@ -486,9 +484,6 @@ TOutputDisparityImage,TMaskImage,TBlockMatchingFunctor>
       }
     }
 
-    // std::cout<<"Output region: "<<outputRegionForThread<<std::endl;
-
-
   // We loop on disparities
   for(int vdisparity = m_MinimumVerticalDisparity; vdisparity <= m_MaximumVerticalDisparity; ++vdisparity)
     {
-- 
GitLab