From a2ab02a35b38d75a2ab98fb59d74f2200821c9e6 Mon Sep 17 00:00:00 2001
From: jcasals <jcasals@iri.upc.edu>
Date: Thu, 18 Jul 2019 09:37:35 +0200
Subject: [PATCH] Added default implementations for loopclosure & tracker

---
 include/core/processor/processor_loopclosure.h | 12 ++++++++++++
 include/core/processor/processor_tracker.h     | 12 ++++++++++++
 src/processor/processor_loopclosure.cpp        |  8 ++++++++
 src/processor/processor_tracker.cpp            | 10 +++++++++-
 4 files changed, 41 insertions(+), 1 deletion(-)

diff --git a/include/core/processor/processor_loopclosure.h b/include/core/processor/processor_loopclosure.h
index 459b8f3d9..27be9a079 100644
--- a/include/core/processor/processor_loopclosure.h
+++ b/include/core/processor/processor_loopclosure.h
@@ -81,6 +81,18 @@ protected:
      */
     virtual bool triggerInKeyFrame(FrameBasePtr _keyframe_ptr, const Scalar& _time_tol_other) override;
 
+    /** \brief store key frame
+    *
+    * Returns true if the key frame should be stored
+    */
+    virtual bool storeKeyFrame(FrameBasePtr) override;
+
+    /** \brief store capture
+    *
+    * Returns true if the capture should be stored
+    */
+    virtual bool storeCapture(CaptureBasePtr) override;
+
     /** \brief Called by process(). Tells if computeFeatures() will be called
      */
     virtual bool voteComputeFeatures() = 0;
diff --git a/include/core/processor/processor_tracker.h b/include/core/processor/processor_tracker.h
index 3915ba33f..1f196d80d 100644
--- a/include/core/processor/processor_tracker.h
+++ b/include/core/processor/processor_tracker.h
@@ -144,6 +144,18 @@ class ProcessorTracker : public ProcessorBase
          */
         virtual bool triggerInKeyFrame(FrameBasePtr _keyframe_ptr, const Scalar& _time_tolerance) override {return false;}
 
+        /** \brief store key frame
+        *
+        * Returns true if the key frame should be stored
+        */
+        virtual bool storeKeyFrame(FrameBasePtr) override;
+
+        /** \brief store capture
+        *
+        * Returns true if the capture should be stored
+        */
+        virtual bool storeCapture(CaptureBasePtr) override;
+
         /** Pre-process incoming Capture
          *
          * This is called by process() just after assigning incoming_ptr_ to a valid Capture.
diff --git a/src/processor/processor_loopclosure.cpp b/src/processor/processor_loopclosure.cpp
index 8448d1913..dcc5dcba8 100644
--- a/src/processor/processor_loopclosure.cpp
+++ b/src/processor/processor_loopclosure.cpp
@@ -75,6 +75,14 @@ bool ProcessorLoopClosure::triggerInKeyFrame(FrameBasePtr _keyframe_ptr, const S
 {
     return true;
 }
+bool ProcessorLoopClosure::storeKeyFrame(FrameBasePtr _frame_ptr)
+{
+  return true;
+}
+bool ProcessorLoopClosure::storeCapture(CaptureBasePtr _cap_ptr)
+{
+  return true;
+}
 
 /**
  * In the default implementation, we select the KF with the most recent TimeStamp
diff --git a/src/processor/processor_tracker.cpp b/src/processor/processor_tracker.cpp
index 988b80668..3ba093912 100644
--- a/src/processor/processor_tracker.cpp
+++ b/src/processor/processor_tracker.cpp
@@ -296,10 +296,18 @@ void ProcessorTracker::computeProcessingStep()
     }
 }
 
-bool ProcessorTracker::triggerInCapture(CaptureBasePtr)
+bool ProcessorTracker::triggerInCapture(CaptureBasePtr _cap_ptr)
 {
     return true;
 }
+bool ProcessorTracker::storeKeyFrame(FrameBasePtr _frame_ptr)
+{
+  return true;
+}
+bool ProcessorTracker::storeCapture(CaptureBasePtr _cap_ptr)
+{
+  return false;
+}
 
 } // namespace wolf
 
-- 
GitLab