From 93c8821ae243a300c6a3ec6dba9e57eb3bdb61c6 Mon Sep 17 00:00:00 2001
From: Sergi Pujol <sergi.pujol.badell@estudiantat.upc.edu>
Date: Tue, 16 Feb 2021 11:36:05 +0100
Subject: [PATCH] sceneExtract moved to .h file

---
 src/loop_closure_falko.cpp          |  3 ++-
 src/loop_closure_falko.h            | 15 +++++++++++----
 test/gtest_loop_closure_base_2d.cpp |  2 +-
 3 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/src/loop_closure_falko.cpp b/src/loop_closure_falko.cpp
index c0ab0fb..824400a 100644
--- a/src/loop_closure_falko.cpp
+++ b/src/loop_closure_falko.cpp
@@ -42,7 +42,7 @@ namespace laserscanutils{
         ((*scanFALKO).fromRanges)(doubleRanges);
         return scanFALKO;
     }
-
+/*
     template <typename D,typename Extr, typename M>
     typename loopClosureFalko<D,Extr, M>::sceneFalkoBSCPtr loopClosureFalko<D,Extr, M>::extractScene(LaserScan &scan,LaserScanParams &scanParams){
         auto newScene=std::make_shared<sceneFalko<D>>();
@@ -54,6 +54,7 @@ namespace laserscanutils{
         extractor_.compute(*scanFALKO,newScene->keypointsList, newScene->descriptorsList);
         return newScene;
     }
+    */
 /*
     template <typename D,typename Extr, typename M>
     typename loopClosureFalko<D,Extr, M>::matchLoopClosurePtr matchScene(std::shared_ptr<sceneFalko<D>> scene1,std::shared_ptr<sceneFalko<D>> scene2){
diff --git a/src/loop_closure_falko.h b/src/loop_closure_falko.h
index bfbcb78..95c534e 100644
--- a/src/loop_closure_falko.h
+++ b/src/loop_closure_falko.h
@@ -69,15 +69,23 @@ public:
      **/
     //void findLoopClosure(std::list<sceneFalko>& scenes, const cornerScene newScene){}
 
-    /** \brief update the scene struct with keypoints and descriptors
+    /** \brief Create and update the scene struct with keypoints and descriptors
      **/
-    sceneFalkoBSCPtr extractScene(LaserScan &scan,LaserScanParams &scanParams) override;
+    sceneFalkoBSCPtr extractScene(LaserScan &scan,LaserScanParams &scanParams) {
+        auto newScene=std::make_shared<sceneFalko<D>>();
+        auto scanFALKO =loopClosureFalko<D,Extr,M>::convert2LaserScanFALKO(scan, scanParams);
+        // Extract keypoints
+        extract((*scanFALKO), (newScene->keypointsList));
+        // Compute descriptors
+        extractor_.compute(*scanFALKO,newScene->keypointsList, newScene->descriptorsList);
+        return newScene;
+    }
 
     /** \brief Convert scans from laserscanutils::LaserScan to falkolib::LaserScan object
      **/
     std::shared_ptr<falkolib::LaserScan> convert2LaserScanFALKO(LaserScan &scan,LaserScanParams &scanParams);
 
-    /** \brief Convert scans from laserscanutils::LaserScan to falkolib::LaserScan object
+    /** \brief Create and update a matchLoopClosure struct with the info that is produced when matching two given scenes
      **/
     matchLoopClosurePtr matchScene(sceneFalkoBSCPtr scene1 ,sceneFalkoBSCPtr scene2){
         std::vector<std::pair<int, int> > assoNN;
@@ -93,7 +101,6 @@ public:
         new_match -> sceneTuple = std::make_tuple(scene1,scene2);
         return new_match;
     }
-
     
 };
 } /* namespace laserscanutils */
diff --git a/test/gtest_loop_closure_base_2d.cpp b/test/gtest_loop_closure_base_2d.cpp
index e2cab5c..d1777d5 100644
--- a/test/gtest_loop_closure_base_2d.cpp
+++ b/test/gtest_loop_closure_base_2d.cpp
@@ -44,7 +44,7 @@ TEST(loop_closure_falko, TestExtractSceneAndMatcher)
 //  PRINTF("All good at TestTest::DummyTestExample !\n");
 }
 
-TEST(loop_closure_falko, convert2laserScanFalko)
+TEST(loop_closure_falko2, convert2laserScanFalko)
 {
     int scanSize = 1440;
 
-- 
GitLab