From 9398ade14c127f5696739634844983c3191434ee Mon Sep 17 00:00:00 2001
From: Sergi Pujol <sergi.pujol.badell@estudiantat.upc.edu>
Date: Sun, 14 Feb 2021 22:34:43 +0100
Subject: [PATCH] gtest_loop_closure_falko added but not implemented

---
 src/loop_closure_base_2d.h          |  2 +-
 src/loop_closure_falko.cpp          |  9 +++++---
 src/loop_closure_falko.h            |  8 ++++---
 test/gtest_loop_closure_base_2d.cpp | 34 +++++++++++++++++++++++++++++
 4 files changed, 46 insertions(+), 7 deletions(-)

diff --git a/src/loop_closure_base_2d.h b/src/loop_closure_base_2d.h
index def39c0..58ddc4e 100644
--- a/src/loop_closure_base_2d.h
+++ b/src/loop_closure_base_2d.h
@@ -56,7 +56,7 @@ public:
 
     /** \brief update the scene struct with keypoints and descriptors
      **/
-    virtual void extractScene(LaserScan &scan,LaserScanParams &scanParams){}
+    //virtual void extractScene(LaserScan &scan,LaserScanParams &scanParams){}
 
     /** \brief Convert scans from laserscanutils::LaserScan to falkolib::LaserScan object
      **/
diff --git a/src/loop_closure_falko.cpp b/src/loop_closure_falko.cpp
index 38fb164..f03732a 100644
--- a/src/loop_closure_falko.cpp
+++ b/src/loop_closure_falko.cpp
@@ -22,10 +22,11 @@ namespace laserscanutils{
         setGridSectors(16);
 
         // Matcher Extractor Parameters
-        matcher.setDistanceThreshold(0.1);
+        //matcher.setDistanceThreshold(0.1);
 
     }
 
+
     // DESTRUCTOR
     template <typename D,typename E, typename M>
     loopClosureFalko<D,E,M>::~loopClosureFalko(){}
@@ -35,9 +36,10 @@ namespace laserscanutils{
 
         auto scanFALKO =loopClosureFalko<D,E,M>::convert2LaserScanFALKO(scan, scanParams);
 
-
         auto NewScene=std::make_shared<cornerScene<D>>();
 
+        //((*NewScene).keypointsList)=((*scanFALKO).ranges);
+
 
         return NewScene;
     }
@@ -45,5 +47,6 @@ namespace laserscanutils{
 
     //void findLoopClosure(std::list<cornerScene>& scenes, const cornerScene newScene){}
 
-
+    //Explicitly compile all the templates
+    template class loopClosureFalko <bsc, bscExtractor, NNMatcher>;
 }
diff --git a/src/loop_closure_falko.h b/src/loop_closure_falko.h
index 451cb82..4150397 100644
--- a/src/loop_closure_falko.h
+++ b/src/loop_closure_falko.h
@@ -17,6 +17,7 @@
  **************************/
 #include "laser_scan.h"
 #include "corner_scene.h"
+#include "loop_closure_base_2d.h"
 
 /**************************
  *      Falko includes      *
@@ -42,8 +43,9 @@ typedef falkolib::NNMatcher<falkolib::FALKO> NNMatcher;
 
    /** \brief A base class for loop closure using falko library
    **/
+
 template <typename D, typename E, typename M>
-class loopClosureFalko : public falkolib::FALKOExtractor{
+class loopClosureFalko : public loopClosureBase2d, public falkolib::FALKOExtractor{
 private:
 
 public:
@@ -63,8 +65,8 @@ public:
      **/
     std::shared_ptr<cornerScene<D>> extractScene(LaserScan &scan,LaserScanParams &scanParams);
 
-    E extractor;
-    M matcher;
+    //E extractor;
+    //M matcher;
 };
 } /* namespace laserscanutils */
 
diff --git a/test/gtest_loop_closure_base_2d.cpp b/test/gtest_loop_closure_base_2d.cpp
index d60cab9..7ba6372 100644
--- a/test/gtest_loop_closure_base_2d.cpp
+++ b/test/gtest_loop_closure_base_2d.cpp
@@ -1,10 +1,44 @@
 #include "gtest/utils_gtest.h"
 #include "testData2.h"
 #include "../src/loop_closure_base_2d.h"
+#include "../src/loop_closure_falko.h"
+
 //#include "laser_scan_utils.h"
 
 using namespace laserscanutils;
 
+TEST(loop_closure_fako, extractScene)
+{
+    int scanSize = 1440;
+
+    LaserScan scan;
+    LaserScanParams laserParams;
+
+    laserParams.angle_min_=0;
+    laserParams.angle_max_=2.0 * M_PI;
+
+    for (int i=0; i<scanSize; i++) {
+     scan.ranges_raw_.push_back(testRanges1[i]);
+    }
+
+  loopClosureFalko<bsc, bscExtractor, NNMatcher> LCFalko;
+
+  std::cout << "AAA" << std::endl;
+/*
+
+  std::shared_ptr<falkolib::LaserScan> scanFALKO=LCBase.convert2LaserScanFALKO(scan, laserParams);
+
+  int firstPoint = ((*scanFALKO).ranges)[0];
+
+  EXPECT_FALSE(false);
+
+  ASSERT_TRUE(true);
+
+  ASSERT_EQ(firstPoint, 250);
+*/
+//  PRINTF("All good at TestTest::DummyTestExample !\n");
+}
+
 TEST(loop_closure_base_2d, convert2laserScanFalko)
 {
     int scanSize = 1440;
-- 
GitLab