From b5bd6dbb863431362e898ed235e480fef6b356b9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joan=20Sol=C3=A0?= <jsola@iri.upc.edu>
Date: Fri, 9 Mar 2018 22:05:53 +0100
Subject: [PATCH] Rename PrcOdom3D params class. Use a const ref of it in
 constructor

---
 src/examples/test_imuPlateform_Offline.cpp    |  2 +-
 src/examples/test_imu_constrained0.cpp        |  2 +-
 src/processor_odom_3D.cpp                     | 14 +++++------
 src/processor_odom_3D.h                       | 25 ++++++-------------
 .../serialization_processor_odom3d_params.h   |  4 +--
 src/test/gtest_constraint_IMU.cpp             |  6 ++---
 ..._serialization_processor_odom3d_params.cpp | 24 +++++++++---------
 src/yaml/processor_odom_3D_yaml.cpp           |  2 +-
 8 files changed, 34 insertions(+), 45 deletions(-)

diff --git a/src/examples/test_imuPlateform_Offline.cpp b/src/examples/test_imuPlateform_Offline.cpp
index 487fac375..04e27bd49 100644
--- a/src/examples/test_imuPlateform_Offline.cpp
+++ b/src/examples/test_imuPlateform_Offline.cpp
@@ -96,7 +96,7 @@ int main(int argc, char** argv)
 
     // SENSOR + PROCESSOR ODOM 3D
     SensorBasePtr sen1_ptr = wolf_problem_ptr_->installSensor("ODOM 3D", "odom", (Vector7s()<<0,0,0,0,0,0,1).finished(), wolf_root + "/src/examples/sensor_odom_3D.yaml");
-    ProcessorOdom3DParamsPtr prc_odom3D_params = std::make_shared<ProcessorOdom3DParams>();
+    ProcessorOdom3DParamsPtr prc_odom3D_params = std::make_shared<ProcessorParamsOdom3D>();
     prc_odom3D_params->max_time_span = 1.9999;
     prc_odom3D_params->max_buff_length = 1000000000; //make it very high so that this condition will not pass
     prc_odom3D_params->dist_traveled = 1000000000;
diff --git a/src/examples/test_imu_constrained0.cpp b/src/examples/test_imu_constrained0.cpp
index 185406733..f5affb647 100644
--- a/src/examples/test_imu_constrained0.cpp
+++ b/src/examples/test_imu_constrained0.cpp
@@ -118,7 +118,7 @@ int main(int argc, char** argv)
 
     // SENSOR + PROCESSOR ODOM 3D
     SensorBasePtr sen1_ptr = wolf_problem_ptr_->installSensor("ODOM 3D", "odom", (Vector7s()<<0,0,0,0,0,0,1).finished(), wolf_root + "/src/examples/sensor_odom_3D_HQ.yaml");
-    ProcessorOdom3DParamsPtr prc_odom3D_params = std::make_shared<ProcessorOdom3DParams>();
+    ProcessorOdom3DParamsPtr prc_odom3D_params = std::make_shared<ProcessorParamsOdom3D>();
     prc_odom3D_params->max_time_span = 20.9999;
     prc_odom3D_params->max_buff_length = 1000000000; //make it very high so that this condition will not pass
     prc_odom3D_params->dist_traveled = 1000000000;
diff --git a/src/processor_odom_3D.cpp b/src/processor_odom_3D.cpp
index 70b31a443..38c337fd8 100644
--- a/src/processor_odom_3D.cpp
+++ b/src/processor_odom_3D.cpp
@@ -2,12 +2,12 @@
 namespace wolf
 {
 
-ProcessorOdom3D::ProcessorOdom3D(ProcessorOdom3DParamsPtr _params, SensorOdom3DPtr _sensor_ptr) :
+ProcessorOdom3D::ProcessorOdom3D(const ProcessorParamsOdom3D& _params, SensorOdom3DPtr _sensor_ptr) :
                 ProcessorMotion("ODOM 3D", 7, 7, 6, 6),
-                max_time_span_  (_params ? _params    ->max_time_span   : 1.0  ),
-                max_buff_length_(_params ? _params    ->max_buff_length : 10   ),
-                dist_traveled_  (_params ? _params    ->dist_traveled   : 1.0  ),
-                angle_turned_   (_params ? _params    ->angle_turned    : 0.5  ),
+                max_time_span_  ( _params.max_time_span   ),
+                max_buff_length_( _params.max_buff_length ),
+                dist_traveled_  ( _params.dist_traveled   ),
+                angle_turned_   ( _params.angle_turned    ),
                 p1_(nullptr), p2_(nullptr), p_out_(nullptr),
                 q1_(nullptr), q2_(nullptr), q_out_(nullptr)
         {
@@ -261,12 +261,12 @@ Motion ProcessorOdom3D::interpolate(const Motion& _motion_ref, Motion& _motion_s
 ProcessorBasePtr ProcessorOdom3D::create(const std::string& _unique_name, const ProcessorParamsBasePtr _params, const SensorBasePtr _sen_ptr)
 {
     // cast inputs to the correct type
-    std::shared_ptr<ProcessorOdom3DParams> prc_odo_params = std::static_pointer_cast<ProcessorOdom3DParams>(_params);
+    std::shared_ptr<ProcessorParamsOdom3D> prc_odo_params = std::static_pointer_cast<ProcessorParamsOdom3D>(_params);
 
     SensorOdom3DPtr sen_odo =std::static_pointer_cast<SensorOdom3D>(_sen_ptr);
 
     // construct processor
-    ProcessorOdom3DPtr prc_odo = std::make_shared<ProcessorOdom3D>(prc_odo_params, sen_odo);
+    ProcessorOdom3DPtr prc_odo = std::make_shared<ProcessorOdom3D>(*prc_odo_params, sen_odo);
 
     // setup processor
     prc_odo->setName(_unique_name);
diff --git a/src/processor_odom_3D.h b/src/processor_odom_3D.h
index 0827cd3bd..1dbbf2ad3 100644
--- a/src/processor_odom_3D.h
+++ b/src/processor_odom_3D.h
@@ -18,25 +18,14 @@
 
 namespace wolf {
     
-WOLF_STRUCT_PTR_TYPEDEFS(ProcessorOdom3DParams);
+WOLF_STRUCT_PTR_TYPEDEFS(ProcessorParamsOdom3D);
 
-struct ProcessorOdom3DParams : public ProcessorParamsBase
+struct ProcessorParamsOdom3D : public ProcessorParamsBase
 {
-        Scalar max_time_span;
-        Size   max_buff_length;
-        Scalar dist_traveled;
-        Scalar angle_turned;
-
-
-        ProcessorOdom3DParams() :
-            max_time_span(0),
-            max_buff_length(0),
-            dist_traveled(0),
-            angle_turned(0)
-        {
-            type = "ODOM 3D";
-            name = "";
-        }
+        Scalar max_time_span    = 1.0;
+        Size   max_buff_length  = 10;
+        Scalar dist_traveled    = 1.0;
+        Scalar angle_turned     = 0.5;
 };
 
 
@@ -67,7 +56,7 @@ WOLF_PTR_TYPEDEFS(ProcessorOdom3D);
 class ProcessorOdom3D : public ProcessorMotion
 {
     public:
-        ProcessorOdom3D(ProcessorOdom3DParamsPtr _params = nullptr, SensorOdom3DPtr _sensor_ptr = nullptr);
+        ProcessorOdom3D(const ProcessorParamsOdom3D& _params = ProcessorParamsOdom3D(), SensorOdom3DPtr _sensor_ptr = nullptr);
         virtual ~ProcessorOdom3D();
         void setup(SensorOdom3DPtr sen_ptr);
 
diff --git a/src/serialization/cereal/serialization_processor_odom3d_params.h b/src/serialization/cereal/serialization_processor_odom3d_params.h
index 06770f759..9b658a233 100644
--- a/src/serialization/cereal/serialization_processor_odom3d_params.h
+++ b/src/serialization/cereal/serialization_processor_odom3d_params.h
@@ -8,7 +8,7 @@
 namespace cereal {
 
 template <class Archive>
-void serialize(Archive& ar, wolf::ProcessorOdom3DParams& o,
+void serialize(Archive& ar, wolf::ProcessorParamsOdom3D& o,
                std::uint32_t const /*version*/)
 {
   ar( cereal::make_nvp("ProcessorParamsBase",
@@ -22,6 +22,6 @@ void serialize(Archive& ar, wolf::ProcessorOdom3DParams& o,
 
 } // namespace cereal
 
-CEREAL_REGISTER_TYPE_WITH_NAME(wolf::ProcessorOdom3DParams, "ProcessorOdom3DParams")
+CEREAL_REGISTER_TYPE_WITH_NAME(wolf::ProcessorParamsOdom3D, "ProcessorOdom3DParams")
 
 #endif /* _WOLF_SERIALIZATION_CEREAL_PROCESSOR_ODOM3D_PARAMS_H_ */
diff --git a/src/test/gtest_constraint_IMU.cpp b/src/test/gtest_constraint_IMU.cpp
index 3accb792b..a507efbc0 100644
--- a/src/test/gtest_constraint_IMU.cpp
+++ b/src/test/gtest_constraint_IMU.cpp
@@ -887,7 +887,7 @@ class ConstraintIMU_ODOM_biasTest_Move_NonNullBiasRot : public testing::Test
         WOLF_TRACE("IMU cov: ", sensor_imu->getNoiseCov().diagonal().transpose());
         WOLF_TRACE("ODO cov: ", sensor_odo->getNoiseCov().diagonal().transpose());
 
-        ProcessorOdom3DParamsPtr prc_odom3D_params = std::make_shared<ProcessorOdom3DParams>();
+        ProcessorOdom3DParamsPtr prc_odom3D_params = std::make_shared<ProcessorParamsOdom3D>();
         prc_odom3D_params->max_time_span    = 0.0099;
         prc_odom3D_params->max_buff_length  = 1000; //make it very high so that this condition will not pass
         prc_odom3D_params->dist_traveled    = 1000;
@@ -1064,7 +1064,7 @@ class ConstraintIMU_ODOM_biasTest_Move_NonNullBiasRotY : public testing::Test
 
         // SENSOR + PROCESSOR ODOM 3D
         SensorBasePtr sen1_ptr = wolf_problem_ptr_->installSensor("ODOM 3D", "odom", (Vector7s()<<0,0,0,0,0,0,1).finished(), wolf_root + "/src/examples/sensor_odom_3D_HQ.yaml");
-        ProcessorOdom3DParamsPtr prc_odom3D_params = std::make_shared<ProcessorOdom3DParams>();
+        ProcessorOdom3DParamsPtr prc_odom3D_params = std::make_shared<ProcessorParamsOdom3D>();
         prc_odom3D_params->max_time_span = 0.9999;
         prc_odom3D_params->max_buff_length = 1000000000; //make it very high so that this condition will not pass
         prc_odom3D_params->dist_traveled = 1000000000;
@@ -1205,7 +1205,7 @@ class ConstraintIMU_ODOM_biasTest_Move_NonNullBiasRotXY : public testing::Test
 
         // SENSOR + PROCESSOR ODOM 3D
         SensorBasePtr sen1_ptr = wolf_problem_ptr_->installSensor("ODOM 3D", "odom", (Vector7s()<<0,0,0,0,0,0,1).finished(), wolf_root + "/src/examples/sensor_odom_3D_HQ.yaml");
-        ProcessorOdom3DParamsPtr prc_odom3D_params = std::make_shared<ProcessorOdom3DParams>();
+        ProcessorOdom3DParamsPtr prc_odom3D_params = std::make_shared<ProcessorParamsOdom3D>();
         prc_odom3D_params->max_time_span = 0.9999;
         prc_odom3D_params->max_buff_length = 1000000000; //make it very high so that this condition will not pass
         prc_odom3D_params->dist_traveled = 1000000000;
diff --git a/src/test/serialization/cereal/gtest_serialization_processor_odom3d_params.cpp b/src/test/serialization/cereal/gtest_serialization_processor_odom3d_params.cpp
index ed2aaab3b..7a84ef3ff 100644
--- a/src/test/serialization/cereal/gtest_serialization_processor_odom3d_params.cpp
+++ b/src/test/serialization/cereal/gtest_serialization_processor_odom3d_params.cpp
@@ -31,7 +31,7 @@ public:
 
   const std::string path_to_io = "/tmp/";
 
-  wolf::ProcessorOdom3DParams nb_;
+  wolf::ProcessorParamsOdom3D nb_;
 };
 
 TEST_F(WolfTestCerealSerializationProcessorOdom3DParams,
@@ -39,7 +39,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams,
 {
   const std::string filename(path_to_io + "params_odom3d_serialization.xml");
 
-  wolf::ProcessorOdom3DParams nb_save;
+  wolf::ProcessorParamsOdom3D nb_save;
   nb_save.name = "NAME2";
   //nb_.type = "ODOM 3D";
 
@@ -51,7 +51,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams,
   ASSERT_NO_THROW( wolf::save( filename, nb_, nb_save, 10 ) );
 
   {
-    wolf::ProcessorOdom3DParams nb_load;
+    wolf::ProcessorParamsOdom3D nb_load;
 
     ASSERT_NO_THROW( wolf::load( filename, nb_load ) );
 
@@ -62,7 +62,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams,
     ASSERT_EQ(nb_load.dist_traveled,   nb_.dist_traveled);
     ASSERT_EQ(nb_load.angle_turned,    nb_.angle_turned);
 
-    wolf::ProcessorOdom3DParams nb_load0, nb_load1;
+    wolf::ProcessorParamsOdom3D nb_load0, nb_load1;
     int myint;
     ASSERT_NO_THROW( wolf::load( filename, nb_load0, nb_load1, myint ) );
 
@@ -95,7 +95,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams,
 
   {
     wolf::ProcessorParamsBasePtr nb =
-        std::make_shared<wolf::ProcessorOdom3DParams>(nb_);
+        std::make_shared<wolf::ProcessorParamsOdom3D>(nb_);
 
     ASSERT_NO_THROW( wolf::save( filename, nb ) );
   }
@@ -106,7 +106,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams,
     ASSERT_NO_THROW( wolf::load( filename, nb ) );
 
     wolf::ProcessorOdom3DParamsPtr nb_cast =
-        std::dynamic_pointer_cast<wolf::ProcessorOdom3DParams>(nb);
+        std::dynamic_pointer_cast<wolf::ProcessorParamsOdom3D>(nb);
 
     ASSERT_TRUE(nb_cast != nullptr);
 
@@ -130,7 +130,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams,
 
   ASSERT_NO_THROW( wolf::save( filename, nb_ ) );
 
-  wolf::ProcessorOdom3DParams nb_load;
+  wolf::ProcessorParamsOdom3D nb_load;
 
   ASSERT_NO_THROW( wolf::load( filename, nb_load ) );
 
@@ -153,7 +153,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams,
 
   {
     wolf::ProcessorParamsBasePtr nb =
-        std::make_shared<wolf::ProcessorOdom3DParams>(nb_);
+        std::make_shared<wolf::ProcessorParamsOdom3D>(nb_);
 
     ASSERT_NO_THROW( wolf::save( filename, nb ) );
   }
@@ -164,7 +164,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams,
     ASSERT_NO_THROW( wolf::load( filename, nb ) );
 
     wolf::ProcessorOdom3DParamsPtr nb_cast =
-        std::dynamic_pointer_cast<wolf::ProcessorOdom3DParams>(nb);
+        std::dynamic_pointer_cast<wolf::ProcessorParamsOdom3D>(nb);
 
     ASSERT_TRUE(nb_cast != nullptr);
 
@@ -188,7 +188,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams,
 
   ASSERT_NO_THROW( wolf::save( filename, nb_ ) );
 
-  wolf::ProcessorOdom3DParams nb_load;
+  wolf::ProcessorParamsOdom3D nb_load;
 
   ASSERT_NO_THROW( wolf::load( filename, nb_load ) );
 
@@ -211,7 +211,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams,
 
   {
     wolf::ProcessorParamsBasePtr nb =
-        std::make_shared<wolf::ProcessorOdom3DParams>(nb_);
+        std::make_shared<wolf::ProcessorParamsOdom3D>(nb_);
 
     ASSERT_NO_THROW( wolf::save( filename, nb ) );
   }
@@ -222,7 +222,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams,
     ASSERT_NO_THROW( wolf::load( filename, nb ) );
 
     wolf::ProcessorOdom3DParamsPtr nb_cast =
-        std::dynamic_pointer_cast<wolf::ProcessorOdom3DParams>(nb);
+        std::dynamic_pointer_cast<wolf::ProcessorParamsOdom3D>(nb);
 
     ASSERT_TRUE(nb_cast != nullptr);
 
diff --git a/src/yaml/processor_odom_3D_yaml.cpp b/src/yaml/processor_odom_3D_yaml.cpp
index a8fbce599..450fec00b 100644
--- a/src/yaml/processor_odom_3D_yaml.cpp
+++ b/src/yaml/processor_odom_3D_yaml.cpp
@@ -34,7 +34,7 @@ static ProcessorParamsBasePtr createProcessorOdom3DParams(const std::string & _f
 
         YAML::Node kf_vote = config["keyframe vote"];
 
-        ProcessorOdom3DParamsPtr params = std::make_shared<ProcessorOdom3DParams>();
+        ProcessorParamsOdom3DPtr params = std::make_shared<ProcessorParamsOdom3D>();
 
         params->type                = processor_type;
         params->name                = processor_name;
-- 
GitLab