From d5d75274ecca38266cdd4c6cc2d92d3c1a37a310 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Tue, 10 Oct 2023 06:55:54 -0400 Subject: [PATCH] rearrange Values::insert to fix 1477 --- gtsam/nonlinear/values.i | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gtsam/nonlinear/values.i b/gtsam/nonlinear/values.i index e36b1cf1c..64c0f447d 100644 --- a/gtsam/nonlinear/values.i +++ b/gtsam/nonlinear/values.i @@ -66,8 +66,6 @@ class Values { // The order is important: Vector has to precede Point2/Point3 so `atVector` // can work for those fixed-size vectors. - void insert(size_t j, Vector vector); - void insert(size_t j, Matrix matrix); void insert(size_t j, const gtsam::Point2& point2); void insert(size_t j, const gtsam::Point3& point3); void insert(size_t j, const gtsam::Rot2& rot2); @@ -94,6 +92,10 @@ class Values { void insert(size_t j, const gtsam::PinholePose& camera); void insert(size_t j, const gtsam::imuBias::ConstantBias& constant_bias); void insert(size_t j, const gtsam::NavState& nav_state); + // Vector and Matrix versions should go at the end + // to avoid collisions with Point2 and Point3 + void insert(size_t j, Vector vector); + void insert(size_t j, Matrix matrix); void insert(size_t j, double c); template @@ -125,6 +127,8 @@ class Values { void update(size_t j, const gtsam::PinholePose& camera); void update(size_t j, const gtsam::imuBias::ConstantBias& constant_bias); void update(size_t j, const gtsam::NavState& nav_state); + // Vector and Matrix versions should go at the end + // to avoid collisions with Point2 and Point3 void update(size_t j, Vector vector); void update(size_t j, Matrix matrix); void update(size_t j, double c); @@ -165,6 +169,8 @@ class Values { void insert_or_assign(size_t j, const gtsam::imuBias::ConstantBias& constant_bias); void insert_or_assign(size_t j, const gtsam::NavState& nav_state); + // Vector and Matrix versions should go at the end + // to avoid collisions with Point2 and Point3 void insert_or_assign(size_t j, Vector vector); void insert_or_assign(size_t j, Matrix matrix); void insert_or_assign(size_t j, double c);