Merge pull request #381 from mikesheffler/fix/matlab_wrapper_2

Second attempt at a MATLAB wrapper build fix.

Per @dellaert I'm going to open a separate issue to see if we need the `split_member`
release/4.3a0
Mike Sheffler 2020-07-08 11:09:11 -07:00 committed by GitHub
commit 0a8a63b8e3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 2 deletions

View File

@ -30,6 +30,9 @@
#include <vector>
#include <random>
// For save/load
#include <boost/serialization/split_member.hpp>
namespace gtsam {
namespace internal {
@ -292,6 +295,10 @@ class SO : public LieGroup<SO<N>, internal::DimensionSO(N)> {
boost::none) const;
/// @}
template <class Archive>
friend void save(Archive&, SO&, const unsigned int);
template <class Archive>
friend void load(Archive&, SO&, const unsigned int);
template <class Archive>
friend void serialize(Archive&, SO&, const unsigned int);
friend class boost::serialization::access;
@ -329,6 +336,16 @@ template <>
SOn LieGroup<SOn, Eigen::Dynamic>::between(const SOn& g, DynamicJacobian H1,
DynamicJacobian H2) const;
/** Serialization function */
template<class Archive>
void serialize(
Archive& ar, SOn& Q,
const unsigned int file_version
) {
Matrix& M = Q.matrix_;
ar& M;
}
/*
* Define the traits. internal::LieGroup provides both Lie group and Testable
*/

View File

@ -33,7 +33,7 @@ namespace gtsam {
* isotropic. If it is, we extend to 'Dim' dimensions, otherwise we throw an
* error. If defaultToUnit == false throws an exception on unexepcted input.
*/
boost::shared_ptr<noiseModel::Isotropic> ConvertPose3NoiseModel(
GTSAM_EXPORT boost::shared_ptr<noiseModel::Isotropic> ConvertPose3NoiseModel(
const SharedNoiseModel& model, size_t d, bool defaultToUnit = true);
/**
@ -125,7 +125,7 @@ class FrobeniusBetweenFactor : public NoiseModelFactor2<Rot, Rot> {
* the SO(p) matrices down to a Stiefel manifold of p*d matrices.
* TODO(frank): template on D=2 or 3
*/
class FrobeniusWormholeFactor : public NoiseModelFactor2<SOn, SOn> {
class GTSAM_EXPORT FrobeniusWormholeFactor : public NoiseModelFactor2<SOn, SOn> {
Matrix M_; ///< measured rotation between R1 and R2
size_t p_, pp_, dimension_; ///< dimensionality constants
Matrix G_; ///< matrix of vectorized generators