From 291365b35f57e9be161bac2740f36697d3ad68e5 Mon Sep 17 00:00:00 2001
From: jvallve <jvallve@iri.upc.edu>
Date: Mon, 25 Apr 2022 16:57:57 +0200
Subject: [PATCH] PT

---
 include/core/processor/processor_tracker.h | 43 ++++++++++++++++++----
 1 file changed, 35 insertions(+), 8 deletions(-)

diff --git a/include/core/processor/processor_tracker.h b/include/core/processor/processor_tracker.h
index f03ed4ea4..d93c9baa3 100644
--- a/include/core/processor/processor_tracker.h
+++ b/include/core/processor/processor_tracker.h
@@ -138,9 +138,12 @@ class ProcessorTracker : public ProcessorBase
 
         StateStructure getStateStructure() const;
 
-        virtual CaptureBasePtr getOrigin() const;
-        virtual CaptureBasePtr getLast() const;
-        virtual CaptureBasePtr getIncoming() const;
+        virtual CaptureBaseConstPtr getOrigin() const;
+        virtual CaptureBasePtr getOrigin();
+        virtual CaptureBaseConstPtr getLast() const;
+        virtual CaptureBasePtr getLast();
+        virtual CaptureBaseConstPtr getIncoming() const;
+        virtual CaptureBasePtr getIncoming();
 
     protected:
         /** \brief process an incoming capture
@@ -261,7 +264,8 @@ class ProcessorTracker : public ProcessorBase
 
     public:
 
-        FeatureBasePtrList& getNewFeaturesListLast();
+        FeatureBaseConstPtrList getNewFeaturesListLast() const;
+        FeatureBasePtrList getNewFeaturesListLast();
 
         std::string print() const {
             return this->params_tracker_->print();
@@ -286,7 +290,15 @@ class ProcessorTracker : public ProcessorBase
 
 };
 
-inline FeatureBasePtrList& ProcessorTracker::getNewFeaturesListLast()
+inline FeatureBaseConstPtrList ProcessorTracker::getNewFeaturesListLast() const
+{
+    FeatureBaseConstPtrList list_const;
+    for (auto&& obj_ptr : new_features_last_)
+        list_const.push_back(obj_ptr);
+    return list_const;
+}
+
+inline FeatureBasePtrList ProcessorTracker::getNewFeaturesListLast()
 {
     return new_features_last_;
 }
@@ -311,17 +323,32 @@ inline void ProcessorTracker::addNewFeatureIncoming(FeatureBasePtr _feature_ptr)
     new_features_incoming_.push_back(_feature_ptr);
 }
 
-inline CaptureBasePtr ProcessorTracker::getOrigin() const
+inline CaptureBaseConstPtr ProcessorTracker::getOrigin() const
+{
+    return origin_ptr_;
+}
+
+inline CaptureBasePtr ProcessorTracker::getOrigin()
 {
     return origin_ptr_;
 }
 
-inline CaptureBasePtr ProcessorTracker::getLast() const
+inline CaptureBaseConstPtr ProcessorTracker::getLast() const
 {
     return last_ptr_;
 }
 
-inline CaptureBasePtr ProcessorTracker::getIncoming() const
+inline CaptureBasePtr ProcessorTracker::getLast()
+{
+    return last_ptr_;
+}
+
+inline CaptureBaseConstPtr ProcessorTracker::getIncoming() const
+{
+    return incoming_ptr_;
+}
+
+inline CaptureBasePtr ProcessorTracker::getIncoming()
 {
     return incoming_ptr_;
 }
-- 
GitLab