From 8c173a8846bd76e4e72813049263ec46e865e291 Mon Sep 17 00:00:00 2001
From: Sergi Pujol <sergi.pujol.badell@estudiantat.upc.edu>
Date: Mon, 15 Feb 2021 11:53:57 +0100
Subject: [PATCH] modified loopClosureFalko constructor

---
 src/corner_scene.h                  |  5 +++++
 src/loop_closure_falko.cpp          | 27 +++++++++++++++++++--------
 src/loop_closure_falko.h            | 11 +++++++----
 test/gtest_loop_closure_base_2d.cpp |  8 ++++----
 4 files changed, 35 insertions(+), 16 deletions(-)

diff --git a/src/corner_scene.h b/src/corner_scene.h
index 19e45d3..fb1932c 100644
--- a/src/corner_scene.h
+++ b/src/corner_scene.h
@@ -28,12 +28,17 @@
 namespace laserscanutils
 {
 
+
+
 template <typename D>
 struct cornerScene{
     std::vector<falkolib::FALKO> keypointsList;
     std::vector<D> descriptorsList;
 };
 
+typedef std::shared_ptr<cornerScene<falkolib::BSC>> cornerSceneBSCPtr;
+
+
 } /* namespace laserscanutils */
 
 #endif /* CORNER_SCENE_H_ */
diff --git a/src/loop_closure_falko.cpp b/src/loop_closure_falko.cpp
index 3a5a20c..caf5518 100644
--- a/src/loop_closure_falko.cpp
+++ b/src/loop_closure_falko.cpp
@@ -10,8 +10,13 @@
 namespace laserscanutils{
 
     //CONSTRUCTOR
-    template <typename D,typename E, typename M>
-    loopClosureFalko<D,E, M>::loopClosureFalko(){
+    template <typename D,typename Extr, typename M>
+    loopClosureFalko<D,Extr, M>::loopClosureFalko(int _circularSectorNumber, int _radialRingNumber) : 
+    loopClosureBase2d(), 
+    falkolib::FALKOExtractor(),
+    extractor_(_circularSectorNumber, _radialRingNumber),
+    matcher_()
+    {
         // FALKO Extractor Parameters
         setMinExtractionRange(0.1);
         setMaxExtractionRange(25);
@@ -28,15 +33,21 @@ namespace laserscanutils{
 
 
     // DESTRUCTOR
-    template <typename D,typename E, typename M>
-    loopClosureFalko<D,E,M>::~loopClosureFalko(){}
+    template <typename D,typename Extr, typename M>
+    loopClosureFalko<D,Extr,M>::~loopClosureFalko(){}
 
-    template <typename D,typename E, typename M>
-    std::shared_ptr<cornerScene<D>> loopClosureFalko<D,E, M>::extractScene(LaserScan &scan,LaserScanParams &scanParams){
+    template <typename D,typename Extr, typename M>
+    std::shared_ptr<cornerScene<D>> loopClosureFalko<D,Extr, M>::extractScene(LaserScan &scan,LaserScanParams &scanParams){
         auto newScene=std::make_shared<cornerScene<D>>();
-        auto scanFALKO =loopClosureFalko<D,E,M>::convert2LaserScanFALKO(scan, scanParams);
+        auto scanFALKO =loopClosureFalko<D,Extr,M>::convert2LaserScanFALKO(scan, scanParams);
         // Extract keypoints
-        extract((*scanFALKO), ((*newScene).keypointsList));
+        extract((*scanFALKO), (newScene->keypointsList));
+
+        // Compute descriptors
+        //loopClosureFalko<D,Extr,M>::extractor:
+        extractor_.compute(*scanFALKO,newScene->keypointsList, newScene->descriptorsList);
+        //extractor.compute((*scanFALKO),((*newScene).keypointsList), ((*newScene).descriptorsList));
+        //loopClosureFalko<D,Extr,M>::extractor::compute((*scanFALKO),((*newScene).keypointsList), ((*newScene).descriptorsList));
         return newScene;
     }
 
diff --git a/src/loop_closure_falko.h b/src/loop_closure_falko.h
index 4150397..379a49d 100644
--- a/src/loop_closure_falko.h
+++ b/src/loop_closure_falko.h
@@ -44,14 +44,18 @@ typedef falkolib::NNMatcher<falkolib::FALKO> NNMatcher;
    /** \brief A base class for loop closure using falko library
    **/
 
-template <typename D, typename E, typename M>
+template <typename D, typename Extr, typename M>
 class loopClosureFalko : public loopClosureBase2d, public falkolib::FALKOExtractor{
 private:
 
 public:
+    Extr extractor_;
+    M matcher_;
+    int test=1;
+
     /** \brief Constructor
     **/
-    loopClosureFalko();
+    loopClosureFalko(int _circularSectorNumber=16, int _radialRingNumber=8);
 
     /** \brief Destructor 
     **/
@@ -65,8 +69,7 @@ public:
      **/
     std::shared_ptr<cornerScene<D>> extractScene(LaserScan &scan,LaserScanParams &scanParams);
 
-    //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 f45d07f..66aca01 100644
--- a/test/gtest_loop_closure_base_2d.cpp
+++ b/test/gtest_loop_closure_base_2d.cpp
@@ -7,7 +7,7 @@
 
 using namespace laserscanutils;
 
-TEST(loop_closure_fako, extractScene)
+TEST(loop_closure_falko, extractScene)
 {
     int scanSize = 1440;
 
@@ -27,12 +27,12 @@ TEST(loop_closure_fako, extractScene)
 
   int detectedKeypoints =((*newScene).keypointsList).size();
 
-  EXPECT_FALSE(false);
-
-  ASSERT_TRUE(true);
+  int detectedDescriptors =newScene->descriptorsList.size();
 
   ASSERT_EQ(detectedKeypoints, 18);
 
+  ASSERT_EQ(detectedDescriptors, 18);
+
 //  PRINTF("All good at TestTest::DummyTestExample !\n");
 }
 
-- 
GitLab