Manifold traits

release/4.3a0
Frank Dellaert 2015-07-12 20:23:49 -07:00
parent 57e28c1731
commit fe7b280879
2 changed files with 18 additions and 8 deletions

View File

@ -20,6 +20,7 @@
#include <gtsam/base/Manifold.h> #include <gtsam/base/Manifold.h>
#include <gtsam/base/Testable.h> #include <gtsam/base/Testable.h>
#include <gtsam/base/OptionalJacobian.h>
#include <boost/concept/assert.hpp> #include <boost/concept/assert.hpp>
namespace gtsam { namespace gtsam {
@ -63,7 +64,7 @@ struct BearingRange
// if (H2) *H2 << HB2, HR2; // if (H2) *H2 << HB2, HR2;
// return BearingRange(b, r); // return BearingRange(b, r);
// } // }
//
void print(const std::string& str = "") const { void print(const std::string& str = "") const {
traits<B>::Print(this->first, str); traits<B>::Print(this->first, str);
traits<R>::Print(this->second, str); traits<R>::Print(this->second, str);
@ -86,8 +87,7 @@ struct BearingRange
template <typename A1, typename A2> template <typename A1, typename A2>
struct traits<BearingRange<A1, A2> > struct traits<BearingRange<A1, A2> >
: Testable<BearingRange<A1, A2> > : Testable<BearingRange<A1, A2> >,
// : internal::ManifoldTraits<BearingRange<A1, A2> > internal::ManifoldTraits<BearingRange<A1, A2> > {};
{};
} // namespace gtsam } // namespace gtsam

View File

@ -33,6 +33,14 @@ BearingRange2D br2D(1, 2);
typedef BearingRange<Pose3, Point3> BearingRange3D; typedef BearingRange<Pose3, Point3> BearingRange3D;
BearingRange3D br3D(Pose3().bearing(Point3(1, 0, 0)), 1); BearingRange3D br3D(Pose3().bearing(Point3(1, 0, 0)), 1);
//******************************************************************************
TEST(BearingRange2D, Concept) {
BOOST_CONCEPT_ASSERT((IsManifold<BearingRange2D>));
}
/* ************************************************************************* */
TEST(BearingRange, 2D) {}
/* ************************************************************************* */ /* ************************************************************************* */
TEST(BearingRange, Serialization2D) { TEST(BearingRange, Serialization2D) {
EXPECT(equalsObj<BearingRange2D>(br2D)); EXPECT(equalsObj<BearingRange2D>(br2D));
@ -40,8 +48,13 @@ TEST(BearingRange, Serialization2D) {
EXPECT(equalsBinary<BearingRange2D>(br2D)); EXPECT(equalsBinary<BearingRange2D>(br2D));
} }
//******************************************************************************
TEST(BearingRange3D, Concept) {
BOOST_CONCEPT_ASSERT((IsManifold<BearingRange3D>));
}
/* ************************************************************************* */ /* ************************************************************************* */
TEST(BearingRange, 2D) {} TEST(BearingRange, 3D) {}
/* ************************************************************************* */ /* ************************************************************************* */
TEST(BearingRange, Serialization3D) { TEST(BearingRange, Serialization3D) {
@ -50,9 +63,6 @@ TEST(BearingRange, Serialization3D) {
EXPECT(equalsBinary<BearingRange3D>(br3D)); EXPECT(equalsBinary<BearingRange3D>(br3D));
} }
/* ************************************************************************* */
TEST(BearingRange, 3D) {}
/* ************************************************************************* */ /* ************************************************************************* */
int main() { int main() {
TestResult tr; TestResult tr;