From 99761a1a71e8b7ef84819f2fbd816140c2c91ab0 Mon Sep 17 00:00:00 2001 From: yetongumich Date: Sun, 5 Apr 2020 18:53:00 -0400 Subject: [PATCH] check if noisemodel is gaussian, if not throw exception --- gtsam/linear/NoiseModel.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gtsam/linear/NoiseModel.cpp b/gtsam/linear/NoiseModel.cpp index a7b48b034..b2d05378f 100644 --- a/gtsam/linear/NoiseModel.cpp +++ b/gtsam/linear/NoiseModel.cpp @@ -657,7 +657,10 @@ void Robust::WhitenSystem(Matrix& A1, Matrix& A2, Matrix& A3, Vector& b) const{ Robust::shared_ptr Robust::Create(const RobustModel::shared_ptr& robust, const noiseModel::Base::shared_ptr noise) { SharedGaussian gaussian; - gaussian = boost::dynamic_pointer_cast(noise); + if (!(gaussian = boost::dynamic_pointer_cast(noise))) + { + throw std::invalid_argument("The noise model inside robust must be Gaussian"); + }; return shared_ptr(new Robust(robust, gaussian)); }