From bebdb9eeae1c37f60557eaaeb8fef12528c225c4 Mon Sep 17 00:00:00 2001 From: jcasals <jcasals@iri.upc.edu> Date: Thu, 18 Jun 2020 15:32:18 +0200 Subject: [PATCH] Adapt SensorCamera to autoconf --- include/vision/sensor/sensor_camera.h | 16 ++++++---------- src/sensor/sensor_camera.cpp | 16 +--------------- 2 files changed, 7 insertions(+), 25 deletions(-) diff --git a/include/vision/sensor/sensor_camera.h b/include/vision/sensor/sensor_camera.h index 7ee6529d3..4af4641f6 100644 --- a/include/vision/sensor/sensor_camera.h +++ b/include/vision/sensor/sensor_camera.h @@ -25,11 +25,11 @@ struct ParamsSensorCamera : public ParamsSensorBase ParamsSensorCamera(std::string _unique_name, const ParamsServer& _server): ParamsSensorBase(_unique_name, _server) { - width = _server.getParam<unsigned int>(_unique_name + "/width"); - height = _server.getParam<unsigned int>(_unique_name + "/height"); - pinhole_model_raw = _server.getParam<Eigen::Vector4d>(_unique_name + "/pinhole_model_raw"); - pinhole_model_rectified = _server.getParam<Eigen::Vector4d>(_unique_name + "/pinhole_model_rectified"); - distortion = _server.getParam<Eigen::VectorXd>(_unique_name + "/distortion"); + width = _server.getParam<unsigned int>(prefix + _unique_name + "/width"); + height = _server.getParam<unsigned int>(prefix + _unique_name + "/height"); + pinhole_model_raw = _server.getParam<Eigen::Vector4d>(prefix + _unique_name + "/pinhole_model_raw"); + pinhole_model_rectified = _server.getParam<Eigen::Vector4d>(prefix + _unique_name + "/pinhole_model_rectified"); + distortion = _server.getParam<Eigen::VectorXd>(prefix + _unique_name + "/distortion"); } std::string print() const { @@ -52,6 +52,7 @@ class SensorCamera : public SensorBase SensorCamera(const Eigen::VectorXd & _extrinsics, const ParamsSensorCamera& _intrinsics); SensorCamera(const Eigen::VectorXd & _extrinsics, ParamsSensorCameraPtr _intrinsics_ptr); + WOLF_SENSOR_CREATE(SensorCamera, ParamsSensorCamera, 7); ~SensorCamera() override; @@ -82,11 +83,6 @@ class SensorCamera : public SensorBase public: EIGEN_MAKE_ALIGNED_OPERATOR_NEW; // to guarantee alignment (see http://eigen.tuxfamily.org/dox-devel/group__TopicStructHavingEigenMembers.html) - - static SensorBasePtr create(const std::string & _unique_name, // - const Eigen::VectorXd& _extrinsics, // - const ParamsSensorBasePtr _intrinsics); - }; inline bool SensorCamera::useRawImages() diff --git a/src/sensor/sensor_camera.cpp b/src/sensor/sensor_camera.cpp index 281953494..a236256e6 100644 --- a/src/sensor/sensor_camera.cpp +++ b/src/sensor/sensor_camera.cpp @@ -46,21 +46,6 @@ Eigen::Matrix3d SensorCamera::setIntrinsicMatrix(Eigen::Vector4d _pinhole_model) K.row(2) << 0, 0, 1; return K; } - -// Define the factory method -SensorBasePtr SensorCamera::create(const std::string& _unique_name, // - const Eigen::VectorXd& _extrinsics_pq, // - const ParamsSensorBasePtr _intrinsics) -{ - assert(_extrinsics_pq.size() == 7 && "Bad extrinsics vector length. Should be 7 for 3d."); - - std::shared_ptr<ParamsSensorCamera> intrinsics_ptr = std::static_pointer_cast<ParamsSensorCamera>(_intrinsics); - SensorCameraPtr sen_ptr = std::make_shared<SensorCamera>(_extrinsics_pq, intrinsics_ptr); - sen_ptr->setName(_unique_name); - - return sen_ptr; -} - } // namespace wolf // Register in the FactorySensor @@ -68,5 +53,6 @@ SensorBasePtr SensorCamera::create(const std::string& _unique_name, // namespace wolf { WOLF_REGISTER_SENSOR(SensorCamera) +WOLF_REGISTER_SENSOR_AUTO(SensorCamera) } // namespace wolf -- GitLab