From 71bb35f7bd27058ef9d78103e864b08e38e5bbd7 Mon Sep 17 00:00:00 2001
From: jcasals <jcasals@iri.upc.edu>
Date: Tue, 24 Mar 2020 15:47:54 +0100
Subject: [PATCH] Add _dim attribute ProcessorBase

---
 hello_wolf/processor_range_bearing.cpp             | 2 +-
 include/core/processor/processor_base.h            | 3 ++-
 include/core/processor/processor_loopclosure.h     | 3 ++-
 include/core/processor/processor_motion.h          | 1 +
 include/core/processor/processor_tracker.h         | 2 ++
 include/core/processor/processor_tracker_feature.h | 1 +
 src/processor/processor_base.cpp                   | 3 ++-
 src/processor/processor_loopclosure.cpp            | 4 ++--
 src/processor/processor_motion.cpp                 | 3 ++-
 src/processor/processor_odom_2d.cpp                | 2 +-
 src/processor/processor_odom_3d.cpp                | 2 +-
 src/processor/processor_tracker.cpp                | 3 ++-
 src/processor/processor_tracker_feature.cpp        | 3 ++-
 src/processor/processor_tracker_landmark.cpp       | 2 +-
 test/dummy/processor_tracker_feature_dummy.h       | 2 +-
 test/gtest_processor_loopclosure.cpp               | 2 +-
 16 files changed, 24 insertions(+), 14 deletions(-)

diff --git a/hello_wolf/processor_range_bearing.cpp b/hello_wolf/processor_range_bearing.cpp
index fa910064e..89b3d7775 100644
--- a/hello_wolf/processor_range_bearing.cpp
+++ b/hello_wolf/processor_range_bearing.cpp
@@ -15,7 +15,7 @@ namespace wolf
 {
 
 ProcessorRangeBearing::ProcessorRangeBearing(ProcessorParamsBasePtr _params) :
-        ProcessorBase("ProcessorRangeBearing", _params)
+        ProcessorBase("ProcessorRangeBearing", 2, _params)
 {
     //
 }
diff --git a/include/core/processor/processor_base.h b/include/core/processor/processor_base.h
index bd39ef49d..55c74707c 100644
--- a/include/core/processor/processor_base.h
+++ b/include/core/processor/processor_base.h
@@ -246,13 +246,14 @@ class ProcessorBase : public NodeBase, public std::enable_shared_from_this<Proce
         ProcessorParamsBasePtr params_;
         BufferPackKeyFrame buffer_pack_kf_;
         BufferCapture buffer_capture_;
+        int dim_;
 
     private:
         SensorBaseWPtr sensor_ptr_;
         static unsigned int processor_id_count_;
 
     public:
-        ProcessorBase(const std::string& _type, ProcessorParamsBasePtr _params);
+        ProcessorBase(const std::string& _type, int _dim, ProcessorParamsBasePtr _params);
         virtual ~ProcessorBase();
         virtual void configure(SensorBasePtr _sensor) = 0;
         virtual void remove();
diff --git a/include/core/processor/processor_loopclosure.h b/include/core/processor/processor_loopclosure.h
index a1f9f67dd..b0720f3a4 100644
--- a/include/core/processor/processor_loopclosure.h
+++ b/include/core/processor/processor_loopclosure.h
@@ -47,10 +47,11 @@ class ProcessorLoopClosure : public ProcessorBase
 protected:
 
     ProcessorParamsLoopClosurePtr params_loop_closure_;
+    int _dim;
 
 public:
 
-    ProcessorLoopClosure(const std::string& _type, ProcessorParamsLoopClosurePtr _params_loop_closure);
+    ProcessorLoopClosure(const std::string& _type, int _dim, ProcessorParamsLoopClosurePtr _params_loop_closure);
 
     virtual ~ProcessorLoopClosure() = default;
     virtual void configure(SensorBasePtr _sensor) override { };
diff --git a/include/core/processor/processor_motion.h b/include/core/processor/processor_motion.h
index b8e6ceaff..2ac6c8d59 100644
--- a/include/core/processor/processor_motion.h
+++ b/include/core/processor/processor_motion.h
@@ -148,6 +148,7 @@ class ProcessorMotion : public ProcessorBase, public IsMotion
     // This is the main public interface
     public:
         ProcessorMotion(const std::string& _type,
+                        int _dim,
                         SizeEigen _state_size,
                         SizeEigen _delta_size,
                         SizeEigen _delta_cov_size,
diff --git a/include/core/processor/processor_tracker.h b/include/core/processor/processor_tracker.h
index ed07d3de5..d7ab95164 100644
--- a/include/core/processor/processor_tracker.h
+++ b/include/core/processor/processor_tracker.h
@@ -104,9 +104,11 @@ class ProcessorTracker : public ProcessorBase
         FeatureBasePtrList new_features_last_;     ///< List of new features in \b last for landmark initialization and new key-frame creation.
         FeatureBasePtrList new_features_incoming_; ///< list of the new features of \b last successfully tracked in \b incoming
         FeatureBasePtrList known_features_incoming_; ///< list of the known features in \b last successfully tracked in \b incoming
+        int _dim;
 
     public:
         ProcessorTracker(const std::string& _type,
+                         int _dim,
                          ProcessorParamsTrackerPtr _params_tracker);
         virtual ~ProcessorTracker();
 
diff --git a/include/core/processor/processor_tracker_feature.h b/include/core/processor/processor_tracker_feature.h
index f05fb8976..b86e041d2 100644
--- a/include/core/processor/processor_tracker_feature.h
+++ b/include/core/processor/processor_tracker_feature.h
@@ -85,6 +85,7 @@ class ProcessorTrackerFeature : public ProcessorTracker
         /** \brief Constructor with type
          */
         ProcessorTrackerFeature(const std::string& _type,
+                                int _dim,
                                 ProcessorParamsTrackerFeaturePtr _params_tracker_feature);
         virtual ~ProcessorTrackerFeature();
 
diff --git a/src/processor/processor_base.cpp b/src/processor/processor_base.cpp
index 3cf7743c4..a35097f2c 100644
--- a/src/processor/processor_base.cpp
+++ b/src/processor/processor_base.cpp
@@ -7,10 +7,11 @@ namespace wolf {
 
 unsigned int ProcessorBase::processor_id_count_ = 0;
 
-ProcessorBase::ProcessorBase(const std::string& _type, ProcessorParamsBasePtr _params) :
+ProcessorBase::ProcessorBase(const std::string& _type, int _dim, ProcessorParamsBasePtr _params) :
         NodeBase("PROCESSOR", _type),
         processor_id_(++processor_id_count_),
         params_(_params),
+        dim_(_dim),
         sensor_ptr_()
 {
 //    WOLF_DEBUG("constructed    +p" , id());
diff --git a/src/processor/processor_loopclosure.cpp b/src/processor/processor_loopclosure.cpp
index 86fb02bf6..3517f9e20 100644
--- a/src/processor/processor_loopclosure.cpp
+++ b/src/processor/processor_loopclosure.cpp
@@ -11,8 +11,8 @@
 namespace wolf
 {
 
-ProcessorLoopClosure::ProcessorLoopClosure(const std::string& _type, ProcessorParamsLoopClosurePtr _params_loop_closure):
-        ProcessorBase(_type, _params_loop_closure),
+ProcessorLoopClosure::ProcessorLoopClosure(const std::string& _type, int _dim, ProcessorParamsLoopClosurePtr _params_loop_closure):
+        ProcessorBase(_type, _dim, _params_loop_closure),
         params_loop_closure_(_params_loop_closure)
 {
     //
diff --git a/src/processor/processor_motion.cpp b/src/processor/processor_motion.cpp
index 39a3d83f4..49bbbbf41 100644
--- a/src/processor/processor_motion.cpp
+++ b/src/processor/processor_motion.cpp
@@ -7,13 +7,14 @@ namespace wolf
 {
 
 ProcessorMotion::ProcessorMotion(const std::string& _type,
+                                 int _dim,
                                  SizeEigen _state_size,
                                  SizeEigen _delta_size,
                                  SizeEigen _delta_cov_size,
                                  SizeEigen _data_size,
                                  SizeEigen _calib_size,
                                  ProcessorParamsMotionPtr _params_motion) :
-        ProcessorBase(_type, _params_motion),
+        ProcessorBase(_type, _dim, _params_motion),
         params_motion_(_params_motion),
         processing_step_(RUNNING_WITHOUT_PACK),
         x_size_(_state_size),
diff --git a/src/processor/processor_odom_2d.cpp b/src/processor/processor_odom_2d.cpp
index 31b7cc70b..9c3132b41 100644
--- a/src/processor/processor_odom_2d.cpp
+++ b/src/processor/processor_odom_2d.cpp
@@ -5,7 +5,7 @@ namespace wolf
 {
 
 ProcessorOdom2d::ProcessorOdom2d(ProcessorParamsOdom2dPtr _params) :
-                ProcessorMotion("ProcessorOdom2d", 3, 3, 3, 2, 0, _params),
+                ProcessorMotion("ProcessorOdom2d", 2, 3, 3, 3, 2, 0, _params),
                 params_odom_2d_(_params)
 {
     unmeasured_perturbation_cov_ = _params->unmeasured_perturbation_std * _params->unmeasured_perturbation_std * Matrix3d::Identity();
diff --git a/src/processor/processor_odom_3d.cpp b/src/processor/processor_odom_3d.cpp
index ac491d9c1..967031e9c 100644
--- a/src/processor/processor_odom_3d.cpp
+++ b/src/processor/processor_odom_3d.cpp
@@ -3,7 +3,7 @@ namespace wolf
 {
 
 ProcessorOdom3d::ProcessorOdom3d(ProcessorParamsOdom3dPtr _params) :
-                        ProcessorMotion("ProcessorOdom3d", 7, 7, 6, 6, 0, _params),
+                        ProcessorMotion("ProcessorOdom3d", 3, 7, 7, 6, 6, 0, _params),
                         params_odom_3d_ (_params),
                         k_disp_to_disp_ (0),
                         k_disp_to_rot_  (0),
diff --git a/src/processor/processor_tracker.cpp b/src/processor/processor_tracker.cpp
index 227f81994..56d5ae4ae 100644
--- a/src/processor/processor_tracker.cpp
+++ b/src/processor/processor_tracker.cpp
@@ -15,8 +15,9 @@ namespace wolf
 {
 
 ProcessorTracker::ProcessorTracker(const std::string& _type,
+                                   int _dim,
                                    ProcessorParamsTrackerPtr _params_tracker) :
-        ProcessorBase(_type, _params_tracker),
+        ProcessorBase(_type, _dim, _params_tracker),
         params_tracker_(_params_tracker),
         processing_step_(FIRST_TIME_WITHOUT_PACK),
         origin_ptr_(nullptr),
diff --git a/src/processor/processor_tracker_feature.cpp b/src/processor/processor_tracker_feature.cpp
index d6ce9c065..211a1aba1 100644
--- a/src/processor/processor_tracker_feature.cpp
+++ b/src/processor/processor_tracker_feature.cpp
@@ -11,8 +11,9 @@ namespace wolf
 {
 
 ProcessorTrackerFeature::ProcessorTrackerFeature(const std::string& _type,
+                                                 int _dim,
                                                  ProcessorParamsTrackerFeaturePtr _params_tracker_feature) :
-            ProcessorTracker(_type, _params_tracker_feature),
+            ProcessorTracker(_type, _dim, _params_tracker_feature),
             params_tracker_feature_(_params_tracker_feature)
 {
 }
diff --git a/src/processor/processor_tracker_landmark.cpp b/src/processor/processor_tracker_landmark.cpp
index c0114ace1..7035dd38d 100644
--- a/src/processor/processor_tracker_landmark.cpp
+++ b/src/processor/processor_tracker_landmark.cpp
@@ -15,7 +15,7 @@ namespace wolf
 
 ProcessorTrackerLandmark::ProcessorTrackerLandmark(const std::string& _type,
                                                    ProcessorParamsTrackerLandmarkPtr _params_tracker_landmark) :
-    ProcessorTracker(_type, _params_tracker_landmark),
+    ProcessorTracker(_type, 0, _params_tracker_landmark),
     params_tracker_landmark_(_params_tracker_landmark)
 {
     //
diff --git a/test/dummy/processor_tracker_feature_dummy.h b/test/dummy/processor_tracker_feature_dummy.h
index 4f5205d15..3328edf08 100644
--- a/test/dummy/processor_tracker_feature_dummy.h
+++ b/test/dummy/processor_tracker_feature_dummy.h
@@ -110,7 +110,7 @@ class ProcessorTrackerFeatureDummy : public ProcessorTrackerFeature
 };
 
 inline ProcessorTrackerFeatureDummy::ProcessorTrackerFeatureDummy(ProcessorParamsTrackerFeatureDummyPtr _params_tracker_feature_dummy) :
-        ProcessorTrackerFeature("ProcessorTrackerFeatureDummy", _params_tracker_feature_dummy),
+        ProcessorTrackerFeature("ProcessorTrackerFeatureDummy", 0, _params_tracker_feature_dummy),
         params_tracker_feature_dummy_(_params_tracker_feature_dummy)
 {
     //
diff --git a/test/gtest_processor_loopclosure.cpp b/test/gtest_processor_loopclosure.cpp
index 01ead38ab..d00fb9340 100644
--- a/test/gtest_processor_loopclosure.cpp
+++ b/test/gtest_processor_loopclosure.cpp
@@ -24,7 +24,7 @@ private:
 
 public:
     ProcessorLoopClosureDummy(ProcessorParamsLoopClosurePtr _params_loop_closure, bool& factor_created):
-        ProcessorLoopClosure("LOOP CLOSURE DUMMY", _params_loop_closure),
+        ProcessorLoopClosure("LOOP CLOSURE DUMMY", 0, _params_loop_closure),
         factor_created(&factor_created){};
     std::pair<FrameBasePtr,CaptureBasePtr> public_selectPairKC(){ return selectPairKC();};
 
-- 
GitLab