From 60219fcd4eb9873674f450486a659409f45ed41b Mon Sep 17 00:00:00 2001
From: Julien Malik <julien.malik@c-s.fr>
Date: Thu, 19 Feb 2015 21:46:11 +0100
Subject: [PATCH] COMP: ugly-fixing #418 once again

---
 .../include/otbImageToSIFTKeyPointSetFilter.h |  4 +-
 .../otbImageToSIFTKeyPointSetFilter.txx       | 85 ++++++++++---------
 2 files changed, 45 insertions(+), 44 deletions(-)

diff --git a/Modules/Feature/Descriptors/include/otbImageToSIFTKeyPointSetFilter.h b/Modules/Feature/Descriptors/include/otbImageToSIFTKeyPointSetFilter.h
index 093f614cae..3dae4d1e84 100644
--- a/Modules/Feature/Descriptors/include/otbImageToSIFTKeyPointSetFilter.h
+++ b/Modules/Feature/Descriptors/include/otbImageToSIFTKeyPointSetFilter.h
@@ -388,10 +388,10 @@ private:
   unsigned int m_ChangeSamplePointsMax;
 
   /** Gaussian sigma for histogram smoothing */
-  static const double m_HistogramGaussianWeights[73];
+  std::vector<double> m_HistogramGaussianWeights;
 
   /** Offsets vector, conveniance datas */
-  static const OffsetType m_Offsets[8];
+  OffsetType m_Offsets[8];
 };
 } // End namespace otb
 #ifndef OTB_MANUAL_INSTANTIATION
diff --git a/Modules/Feature/Descriptors/include/otbImageToSIFTKeyPointSetFilter.txx b/Modules/Feature/Descriptors/include/otbImageToSIFTKeyPointSetFilter.txx
index a0d2dc9fb5..cdabfeef9b 100644
--- a/Modules/Feature/Descriptors/include/otbImageToSIFTKeyPointSetFilter.txx
+++ b/Modules/Feature/Descriptors/include/otbImageToSIFTKeyPointSetFilter.txx
@@ -26,48 +26,6 @@
 namespace otb
 {
 
-template <class TInputImage, class TOutputPointSet>
-const double
-ImageToSIFTKeyPointSetFilter<TInputImage, TOutputPointSet>
-::m_HistogramGaussianWeights[73] =
-  {
-  2.3771112282795414e-07, 3.8860734758633732e-07, 6.2655544995978937e-07, 9.9631120821413786e-07,
-  1.5624909838697011e-06, 2.4167238265599128e-06, 3.6865788528530121e-06,
-  5.5463469229192623e-06, 8.2295774080263437e-06, 1.2043009749602365e-05, 1.738119136656513e-05,
-  2.4740646513897326e-05, 3.4731980398846277e-05, 4.808781565748272e-05,
-  6.5664032975164266e-05, 8.8431512984476723e-05, 0.00011745555408931643, 0.00015386047198026335,
-  0.00019877765486783745, 0.00025327659834301937, 0.00031828015928190065,
-  0.00039446735551235698, 0.00048216931692246382, 0.00058126620279441276, 0.00069109471776775144,
-  0.00081037694122312908, 0.00093718121775182789, 0.0010689246133776746,
-  0.0012024238404411182,  0.0013339976954896103,  0.0014596192424447215,  0.0015751106965100009,  0.0016763688464699555,
-  0.0017596045720966803,  0.0018215772013714365,
-  0.0018598035923515156,  0.0018727231637146351,  0.0018598035923515156,  0.0018215772013714365,  0.0017596045720966803,
-  0.0016763688464699555,  0.0015751106965100009,
-  0.0014596192424447215,  0.0013339976954896103,  0.0012024238404411182,  0.0010689246133776746,
-  0.00093718121775182789, 0.00081037694122312908, 0.00069109471776775144,
-  0.00058126620279441276, 0.00048216931692246382, 0.00039446735551235698, 0.00031828015928190065,
-  0.00025327659834301937, 0.00019877765486783745, 0.00015386047198026335,
-  0.00011745555408931643, 8.8431512984476723e-05, 6.5664032975164266e-05, 4.808781565748272e-05,
-  3.4731980398846277e-05, 2.4740646513897326e-05, 1.738119136656513e-05,
-  1.2043009749602365e-05, 8.2295774080263437e-06, 5.5463469229192623e-06, 3.6865788528530121e-06,
-  2.4167238265599128e-06, 1.5624909838697011e-06, 9.9631120821413786e-07,
-  6.2655544995978937e-07, 3.8860734758633732e-07, 2.3771112282795414e-07
-  };
-
-template <class TInputImage, class TOutputPointSet>
-const typename ImageToSIFTKeyPointSetFilter<TInputImage, TOutputPointSet>::OffsetType
-ImageToSIFTKeyPointSetFilter<TInputImage, TOutputPointSet>::m_Offsets[8] =
-  {
-       {{-1, -1}}, //0
-       {{-1, 0}}, //1
-       {{-1, 1}}, //2
-       {{ 0, -1}}, //3
-       {{ 0, 1}}, //4
-       {{ 1, -1}}, //5
-       {{ 1, 0}}, //6
-       {{ 1, 1}}, //7
-  };
-
 /**
  * Constructor
  */
@@ -97,6 +55,49 @@ ImageToSIFTKeyPointSetFilter<TInputImage, TOutputPointSet>
   m_GradientMagnitudeThreshold = 0.2;
 
   m_ExpandFilter = ExpandFilterType::New();
+  
+  const float HistogramGaussianWeights[73] = {
+    2.3771112282795414e-07, 3.8860734758633732e-07, 6.2655544995978937e-07, 9.9631120821413786e-07,
+    1.5624909838697011e-06, 2.4167238265599128e-06, 3.6865788528530121e-06,
+    5.5463469229192623e-06, 8.2295774080263437e-06, 1.2043009749602365e-05, 1.738119136656513e-05,
+    2.4740646513897326e-05, 3.4731980398846277e-05, 4.808781565748272e-05,
+    6.5664032975164266e-05, 8.8431512984476723e-05, 0.00011745555408931643, 0.00015386047198026335,
+    0.00019877765486783745, 0.00025327659834301937, 0.00031828015928190065,
+    0.00039446735551235698, 0.00048216931692246382, 0.00058126620279441276, 0.00069109471776775144,
+    0.00081037694122312908, 0.00093718121775182789, 0.0010689246133776746,
+    0.0012024238404411182,  0.0013339976954896103,  0.0014596192424447215,  0.0015751106965100009,  0.0016763688464699555,
+    0.0017596045720966803,  0.0018215772013714365,
+    0.0018598035923515156,  0.0018727231637146351,  0.0018598035923515156,  0.0018215772013714365,  0.0017596045720966803,
+    0.0016763688464699555,  0.0015751106965100009,
+    0.0014596192424447215,  0.0013339976954896103,  0.0012024238404411182,  0.0010689246133776746,
+    0.00093718121775182789, 0.00081037694122312908, 0.00069109471776775144,
+    0.00058126620279441276, 0.00048216931692246382, 0.00039446735551235698, 0.00031828015928190065,
+    0.00025327659834301937, 0.00019877765486783745, 0.00015386047198026335,
+    0.00011745555408931643, 8.8431512984476723e-05, 6.5664032975164266e-05, 4.808781565748272e-05,
+    3.4731980398846277e-05, 2.4740646513897326e-05, 1.738119136656513e-05,
+    1.2043009749602365e-05, 8.2295774080263437e-06, 5.5463469229192623e-06, 3.6865788528530121e-06,
+    2.4167238265599128e-06, 1.5624909838697011e-06, 9.9631120821413786e-07,
+    6.2655544995978937e-07, 3.8860734758633732e-07, 2.3771112282795414e-07
+  };
+  
+  std::copy(HistogramGaussianWeights, HistogramGaussianWeights+73, m_HistogramGaussianWeights.begin());
+  
+  m_Offsets[0][0]=-1;
+  m_Offsets[0][1]=-1;
+  m_Offsets[1][0]=-1;
+  m_Offsets[1][1]= 0;
+  m_Offsets[2][0]=-1;
+  m_Offsets[2][1]= 1;
+  m_Offsets[3][0]= 0;
+  m_Offsets[3][1]=-1;
+  m_Offsets[4][0]= 0;
+  m_Offsets[4][1]= 1;
+  m_Offsets[5][0]= 1;
+  m_Offsets[5][1]=-1;
+  m_Offsets[6][0]= 1;
+  m_Offsets[6][1]= 0;
+  m_Offsets[7][0]= 1;
+  m_Offsets[7][1]= 1;
 }
 
 template <class TInputImage, class TOutputPointSet>
-- 
GitLab