Added serialization export keys directly to NoiseModel

release/4.3a0
Alex Cunningham 2011-03-04 14:56:18 +00:00
parent e4ed8cfd60
commit 1c1e47ca1f
4 changed files with 26 additions and 18 deletions

View File

@ -41,6 +41,13 @@ typedef ublas::matrix_column<Matrix> column;
static double inf = std::numeric_limits<double>::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 {

View File

@ -508,3 +508,14 @@ namespace gtsam {
} // namespace noiseModel
} // namespace gtsam
/** Export keys for serialization */
#include <boost/serialization/export.hpp>
#include <boost/serialization/extended_type_info.hpp>
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");

View File

@ -17,9 +17,6 @@
#pragma once
#include <boost/serialization/serialization.hpp>
#include <boost/serialization/export.hpp>
#include <gtsam/slam/BearingRangeFactor.h>
#include <gtsam/nonlinear/TupleValues.h>
#include <gtsam/nonlinear/NonlinearEquality.h>

View File

@ -24,12 +24,12 @@
#include <string>
// includes for standard serialization types
#include <boost/serialization/export.hpp>
#include <boost/serialization/optional.hpp>
#include <boost/serialization/shared_ptr.hpp>
#include <boost/serialization/vector.hpp>
#include <boost/serialization/map.hpp>
#include <boost/serialization/list.hpp>
#include <boost/serialization/export.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
@ -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) {