debugging serialization of ChartValues
parent
003224ac3f
commit
5e51745b86
|
|
@ -147,6 +147,24 @@ protected:
|
||||||
private:
|
private:
|
||||||
/// Fake Tag struct for singleton pool allocator. In fact, it is never used!
|
/// Fake Tag struct for singleton pool allocator. In fact, it is never used!
|
||||||
struct PoolTag { };
|
struct PoolTag { };
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
/// @}
|
||||||
|
/// @name Advanced Interface
|
||||||
|
/// @{
|
||||||
|
|
||||||
|
/** Serialization function */
|
||||||
|
friend class boost::serialization::access;
|
||||||
|
template<class ARCHIVE>
|
||||||
|
void serialize(ARCHIVE & ar, const unsigned int version) {
|
||||||
|
ar & boost::serialization::make_nvp("value", GenericValue<T>::value());
|
||||||
|
// todo: implement a serialization for charts
|
||||||
|
//ar & boost::serialization::make_nvp("Chart", boost::serialization::base_object<typename Chart>(*this));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
namespace traits {
|
namespace traits {
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,11 @@ public:
|
||||||
return traits::equals<T>(this->value_, genericValue2.value_, tol);
|
return traits::equals<T>(this->value_, genericValue2.value_, tol);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// non virtual equals function
|
||||||
|
bool equals(const GenericValue &other, double tol = 1e-9) const {
|
||||||
|
return traits::equals<T>(this->value(),other.value(),tol);
|
||||||
|
}
|
||||||
|
|
||||||
virtual void print(const std::string& str) const {
|
virtual void print(const std::string& str) const {
|
||||||
traits::print<T>(value_,str);
|
traits::print<T>(value_,str);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,8 @@ BOOST_CLASS_EXPORT(gtsam::PinholeCamera<Cal3_S2>)
|
||||||
BOOST_CLASS_EXPORT(gtsam::PinholeCamera<Cal3DS2>)
|
BOOST_CLASS_EXPORT(gtsam::PinholeCamera<Cal3DS2>)
|
||||||
BOOST_CLASS_EXPORT(gtsam::PinholeCamera<Cal3Bundler>)
|
BOOST_CLASS_EXPORT(gtsam::PinholeCamera<Cal3Bundler>)
|
||||||
|
|
||||||
|
BOOST_CLASS_EXPORT(gtsam::ChartValue<gtsam::Pose3>);
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
typedef PinholeCamera<Cal3_S2> PinholeCal3S2;
|
typedef PinholeCamera<Cal3_S2> PinholeCal3S2;
|
||||||
typedef PinholeCamera<Cal3DS2> PinholeCal3DS2;
|
typedef PinholeCamera<Cal3DS2> PinholeCal3DS2;
|
||||||
|
|
@ -56,12 +58,27 @@ static Cal3DS2 cal2(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0);
|
||||||
static Cal3Bundler cal3(1.0, 2.0, 3.0);
|
static Cal3Bundler cal3(1.0, 2.0, 3.0);
|
||||||
|
|
||||||
TEST (Serialization, TemplatedValues) {
|
TEST (Serialization, TemplatedValues) {
|
||||||
|
std::cout << __LINE__ << std::endl;
|
||||||
|
EXPECT(equalsObj(pt3));
|
||||||
|
std::cout << __LINE__ << std::endl;
|
||||||
|
ChartValue<Point3> chv1(pt3);
|
||||||
|
std::cout << __LINE__ << std::endl;
|
||||||
|
EXPECT(equalsObj(chv1));
|
||||||
|
std::cout << __LINE__ << std::endl;
|
||||||
|
PinholeCal3S2 pc(pose3,cal1);
|
||||||
|
EXPECT(equalsObj(pc));
|
||||||
|
std::cout << __LINE__ << std::endl;
|
||||||
Values values;
|
Values values;
|
||||||
|
values.insert(1,pt3);
|
||||||
|
std::cout << __LINE__ << std::endl;
|
||||||
|
EXPECT(equalsObj(values));
|
||||||
|
std::cout << __LINE__ << std::endl;
|
||||||
values.insert(Symbol('a',0), PinholeCal3S2(pose3, cal1));
|
values.insert(Symbol('a',0), PinholeCal3S2(pose3, cal1));
|
||||||
values.insert(Symbol('s',5), PinholeCal3DS2(pose3, cal2));
|
values.insert(Symbol('s',5), PinholeCal3DS2(pose3, cal2));
|
||||||
values.insert(Symbol('d',47), PinholeCal3Bundler(pose3, cal3));
|
values.insert(Symbol('d',47), PinholeCal3Bundler(pose3, cal3));
|
||||||
values.insert(Symbol('a',5), PinholeCal3S2(pose3, cal1));
|
values.insert(Symbol('a',5), PinholeCal3S2(pose3, cal1));
|
||||||
EXPECT(equalsObj(values));
|
EXPECT(equalsObj(values));
|
||||||
|
std::cout << __LINE__ << std::endl;
|
||||||
EXPECT(equalsXML(values));
|
EXPECT(equalsXML(values));
|
||||||
EXPECT(equalsBinary(values));
|
EXPECT(equalsBinary(values));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue