From 1c1e47ca1fc657624b1e28eb33b9228700e35a33 Mon Sep 17 00:00:00 2001 From: Alex Cunningham Date: Fri, 4 Mar 2011 14:56:18 +0000 Subject: [PATCH] Added serialization export keys directly to NoiseModel --- gtsam/linear/NoiseModel.cpp | 7 +++++++ gtsam/linear/NoiseModel.h | 11 +++++++++++ gtsam/slam/planarSLAM.h | 3 --- tests/testSerialization.cpp | 23 ++++++++--------------- 4 files changed, 26 insertions(+), 18 deletions(-) diff --git a/gtsam/linear/NoiseModel.cpp b/gtsam/linear/NoiseModel.cpp index 95ef00c4c..fe230588c 100644 --- a/gtsam/linear/NoiseModel.cpp +++ b/gtsam/linear/NoiseModel.cpp @@ -41,6 +41,13 @@ typedef ublas::matrix_column column; static double inf = std::numeric_limits::infinity(); using namespace std; +/** implement the export code for serialization */ +BOOST_CLASS_EXPORT_IMPLEMENT(gtsam::noiseModel::Constrained); +BOOST_CLASS_EXPORT_IMPLEMENT(gtsam::noiseModel::Diagonal); +BOOST_CLASS_EXPORT_IMPLEMENT(gtsam::noiseModel::Gaussian); +BOOST_CLASS_EXPORT_IMPLEMENT(gtsam::noiseModel::Unit); +BOOST_CLASS_EXPORT_IMPLEMENT(gtsam::noiseModel::Isotropic); + namespace gtsam { namespace noiseModel { diff --git a/gtsam/linear/NoiseModel.h b/gtsam/linear/NoiseModel.h index cc44f6155..457a178b5 100644 --- a/gtsam/linear/NoiseModel.h +++ b/gtsam/linear/NoiseModel.h @@ -508,3 +508,14 @@ namespace gtsam { } // namespace noiseModel } // namespace gtsam + +/** Export keys for serialization */ +#include +#include +BOOST_CLASS_EXPORT_KEY2(gtsam::noiseModel::Constrained, "gtsam_noiseModel_Constrained"); +BOOST_CLASS_EXPORT_KEY2(gtsam::noiseModel::Diagonal, "gtsam_noiseModel_Diagonal"); +BOOST_CLASS_EXPORT_KEY2(gtsam::noiseModel::Gaussian, "gtsam_noiseModel_Gaussian"); +BOOST_CLASS_EXPORT_KEY2(gtsam::noiseModel::Unit, "gtsam_noiseModel_Unit"); +BOOST_CLASS_EXPORT_KEY2(gtsam::noiseModel::Isotropic, "gtsam_noiseModel_Isotropic"); + + diff --git a/gtsam/slam/planarSLAM.h b/gtsam/slam/planarSLAM.h index 6e14dfa61..8d1c44a1b 100644 --- a/gtsam/slam/planarSLAM.h +++ b/gtsam/slam/planarSLAM.h @@ -17,9 +17,6 @@ #pragma once -#include -#include - #include #include #include diff --git a/tests/testSerialization.cpp b/tests/testSerialization.cpp index 420f4b3f0..be5d32d6d 100644 --- a/tests/testSerialization.cpp +++ b/tests/testSerialization.cpp @@ -24,12 +24,12 @@ #include // includes for standard serialization types +#include #include #include #include #include #include -#include #include #include @@ -204,13 +204,6 @@ noiseModel::Isotropic::shared_ptr iso3 = noiseModel::Isotropic::Sigma(3, 0.2); noiseModel::Constrained::shared_ptr constrained3 = noiseModel::Constrained::MixedSigmas(Vector_(3, 0.0, 0.0, 0.1)); noiseModel::Unit::shared_ptr unit3 = noiseModel::Unit::Create(3); -// export GUIDs for noisemodels -BOOST_CLASS_EXPORT_GUID(noiseModel::Diagonal, "gtsam_noiseModel_Diagonal"); -BOOST_CLASS_EXPORT_GUID(noiseModel::Gaussian, "gtsam_noiseModel_Gaussian"); -BOOST_CLASS_EXPORT_GUID(noiseModel::Constrained, "gtsam_noiseModel_Constrained"); -BOOST_CLASS_EXPORT_GUID(noiseModel::Unit, "gtsam_noiseModel_Unit"); -BOOST_CLASS_EXPORT_GUID(noiseModel::Isotropic, "gtsam_noiseModel_Isotropic"); - /* ************************************************************************* */ TEST (Serialization, noiseModels) { // tests using pointers to the derived class @@ -264,13 +257,13 @@ TEST (Serialization, SharedDiagonal_noiseModels) { } /* ************************************************************************* */ -// exporting factor classes -BOOST_CLASS_EXPORT_GUID(Prior, "gtsam_planarSLAM_Prior"); -BOOST_CLASS_EXPORT_GUID(Bearing, "gtsam_planarSLAM_Bearing"); -BOOST_CLASS_EXPORT_GUID(Range, "gtsam_planarSLAM_Range"); -BOOST_CLASS_EXPORT_GUID(BearingRange, "gtsam_planarSLAM_BearingRange"); -BOOST_CLASS_EXPORT_GUID(Odometry, "gtsam_planarSLAM_Odometry"); -BOOST_CLASS_EXPORT_GUID(Constraint, "gtsam_planarSLAM_Constraint"); +/* Create GUIDs for factors */ +BOOST_CLASS_EXPORT_GUID(gtsam::planarSLAM::Prior, "gtsam::planarSLAM::Prior"); +BOOST_CLASS_EXPORT_GUID(gtsam::planarSLAM::Bearing, "gtsam::planarSLAM::Bearing"); +BOOST_CLASS_EXPORT_GUID(gtsam::planarSLAM::Range, "gtsam::planarSLAM::Range"); +BOOST_CLASS_EXPORT_GUID(gtsam::planarSLAM::BearingRange,"gtsam::planarSLAM::BearingRange"); +BOOST_CLASS_EXPORT_GUID(gtsam::planarSLAM::Odometry, "gtsam::planarSLAM::Odometry"); +BOOST_CLASS_EXPORT_GUID(gtsam::planarSLAM::Constraint, "gtsam::planarSLAM::Constraint"); /* ************************************************************************* */ TEST (Serialization, planar_system) {