From 63b8a70501bd8860b597fd5e8877bf0e27067282 Mon Sep 17 00:00:00 2001 From: jcasals <jcasals@iri.upc.edu> Date: Mon, 16 Mar 2020 12:56:21 +0100 Subject: [PATCH] Add check sensor type --- src/processor/processor_bundle_adjustment.cpp | 3 ++- src/processor/processor_tracker_feature_image.cpp | 3 ++- src/processor/processor_tracker_feature_trifocal.cpp | 2 ++ src/processor/processor_tracker_landmark_image.cpp | 4 ++++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/processor/processor_bundle_adjustment.cpp b/src/processor/processor_bundle_adjustment.cpp index 627296b8b..d70e7e7dc 100644 --- a/src/processor/processor_bundle_adjustment.cpp +++ b/src/processor/processor_bundle_adjustment.cpp @@ -62,7 +62,8 @@ void ProcessorBundleAdjustment::configure(SensorBasePtr _sensor) { //TODO: Implement if needed //Initialize camera sensor pointer - camera = std::static_pointer_cast<SensorCamera>(_sensor); + camera = std::dynamic_pointer_cast<SensorCamera>(_sensor); + assert(camera != nullptr && "Sensor is not of type Camera"); } diff --git a/src/processor/processor_tracker_feature_image.cpp b/src/processor/processor_tracker_feature_image.cpp index 8d8149ba2..2f8d8195c 100644 --- a/src/processor/processor_tracker_feature_image.cpp +++ b/src/processor/processor_tracker_feature_image.cpp @@ -44,7 +44,8 @@ ProcessorTrackerFeatureImage::~ProcessorTrackerFeatureImage() void ProcessorTrackerFeatureImage::configure(SensorBasePtr _sensor) { - SensorCameraPtr camera = std::static_pointer_cast<SensorCamera>(_sensor); + SensorCameraPtr camera = std::dynamic_pointer_cast<SensorCamera>(_sensor); + assert(camera != nullptr && "Sensor is not of type Camera"); image_.width_ = camera->getImgWidth(); image_.height_ = camera->getImgHeight(); diff --git a/src/processor/processor_tracker_feature_trifocal.cpp b/src/processor/processor_tracker_feature_trifocal.cpp index d170ec531..b67609dc4 100644 --- a/src/processor/processor_tracker_feature_trifocal.cpp +++ b/src/processor/processor_tracker_feature_trifocal.cpp @@ -448,6 +448,8 @@ void ProcessorTrackerFeatureTrifocal::setParams(const ProcessorParamsTrackerFeat void ProcessorTrackerFeatureTrifocal::configure(SensorBasePtr _sensor) { + SensorCameraPtr camera = std::dynamic_pointer_cast<SensorCamera>(_sensor); + assert(camera != nullptr && "Sensor is not of type Camera"); _sensor->setNoiseStd(Vector2d::Ones() * params_tracker_feature_trifocal_->pixel_noise_std); } diff --git a/src/processor/processor_tracker_landmark_image.cpp b/src/processor/processor_tracker_landmark_image.cpp index 841d501c8..a0024e3ef 100644 --- a/src/processor/processor_tracker_landmark_image.cpp +++ b/src/processor/processor_tracker_landmark_image.cpp @@ -58,6 +58,10 @@ ProcessorTrackerLandmarkImage::~ProcessorTrackerLandmarkImage() void ProcessorTrackerLandmarkImage::configure(SensorBasePtr _sensor) { + + auto sensor = std::dynamic_pointer_cast<SensorCamera>(_sensor); + assert(sensor != nullptr && "Sensor is not of type Camera"); + SensorCameraPtr camera(std::static_pointer_cast<SensorCamera>(_sensor)); image_.width_ = camera->getImgWidth(); image_.height_ = camera->getImgHeight(); -- GitLab