From 7186f758fb0f94230e530d40c1f789cce34dd627 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joan=20Sol=C3=A0?= <jsola@iri.upc.edu>
Date: Thu, 1 Aug 2019 11:00:35 +0200
Subject: [PATCH] Improve creator macros and constructor API

---
 include/core/processor/processor_base.h | 10 ++++------
 include/core/sensor/sensor_base.h       |  6 ++++--
 src/processor/processor_diff_drive.cpp  |  2 +-
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/include/core/processor/processor_base.h b/include/core/processor/processor_base.h
index bbda7ba83..847950cd8 100644
--- a/include/core/processor/processor_base.h
+++ b/include/core/processor/processor_base.h
@@ -22,15 +22,13 @@ namespace wolf {
 /*
  * Macro for defining Autoconf processor creator.
  *
+ * Place a call to this macro inside your class declaration (in the processor_class.h file),
+ * preferably just after the constructors.
+ *
  * In order to use this macro, the derived processor class, ProcessorClass,
- * must have a constructor available with one of the following APIs:
+ * must have a constructor available with the API:
  *
  *   ProcessorClass(const SensorClassPtr _sensor, const ProcessorParamsClassPtr _params);
- *   ProcessorClass(const SensorClassPtr _sensor, const ProcessorParamsBasePtr  _params);
- *   ProcessorClass(const SensorBasePtr  _sensor, const ProcessorParamsClassPtr _params);
- *   ProcessorClass(const SensorBasePtr  _sensor, const ProcessorParamsBasePtr  _params);
- *
- * We recommend writing one of such constructors in your derived processors.
  */
 #define WOLF_CREATE_PROCESSOR_AUTO(ProcessorClass, ProcessorParamsClass, SensorClass)   \
 static ProcessorBasePtr createAutoConf(const std::string& _unique_name,                 \
diff --git a/include/core/sensor/sensor_base.h b/include/core/sensor/sensor_base.h
index 18fe0568e..910fa12d2 100644
--- a/include/core/sensor/sensor_base.h
+++ b/include/core/sensor/sensor_base.h
@@ -22,11 +22,13 @@ namespace wolf {
 /*
  * Macro for defining Autoconf sensor creator.
  *
+ * Place a call to this macro inside your class declaration (in the sensor_class.h file),
+ * preferably just after the constructors.
+ *
  * In order to use this macro, the derived sensor class, SensorClass,
- * must have a constructor available with one of the following APIs:
+ * must have a constructor available with the API:
  *
  *   SensorClass(const VectorXs & _extrinsics, const IntrinsicsClassPtr _intrinsics);
- *   SensorClass(const VectorXs & _extrinsics, const IntrinsicsBasePtr  _intrinsics);
  *
  * We recommend writing one of such constructors in your derived sensors.
  */
diff --git a/src/processor/processor_diff_drive.cpp b/src/processor/processor_diff_drive.cpp
index 56e25ef30..e2f15642a 100644
--- a/src/processor/processor_diff_drive.cpp
+++ b/src/processor/processor_diff_drive.cpp
@@ -16,7 +16,7 @@
 namespace wolf
 {
 
-ProcessorDiffDrive::ProcessorDiffDrive(ProcessorParamsDiffDrivePtr _params) :
+ProcessorDiffDrive::ProcessorDiffDrive(const ProcessorParamsDiffDrivePtr _params) :
         ProcessorOdom2D(_params),
         params_prc_diff_drv_selfcal_(_params),
         radians_per_tick_(0.0) // This params needs further initialization. See this->configure(sensor).
-- 
GitLab