gtsam/gtsam/base/lieProxies.h

60 lines
1.6 KiB
C++

/* ----------------------------------------------------------------------------
* GTSAM Copyright 2010, Georgia Tech Research Corporation,
* Atlanta, Georgia 30332-0415
* All Rights Reserved
* Authors: Frank Dellaert, et al. (see THANKS for the full author list)
* See LICENSE for the license information
* -------------------------------------------------------------------------- */
/**
* @file lieProxies.h
* @brief Provides convenient mappings of common member functions for testing
* @author Alex Cunningham
*/
#pragma once
/**
* Global functions in a separate testing namespace
*
* These should not be used outside of tests, as they are just remappings
* of the original functions. We use these to avoid needing to do
* too much boost::bind magic or writing a bunch of separate proxy functions.
*
* Don't expect all classes to work for all of these functions.
*/
namespace gtsam {
namespace testing {
/** binary functions */
template<class T>
T between(const T& t1, const T& t2) { return t1.between(t2); }
template<class T>
T compose(const T& t1, const T& t2) { return t1.compose(t2); }
/** expmap and logmap */
template<class T>
Vector logmap(const T& t1, const T& t2) { return t1.logmap(t2); }
template<class T>
T expmap(const T& t1, const Vector& t2) { return t1.expmap(t2); }
/** unary functions */
template<class T>
T inverse(const T& t) { return t.inverse(); }
/** rotation functions */
template<class T, class P>
P rotate(const T& r, const P& pt) { return r.rotate(pt); }
template<class T, class P>
P unrotate(const T& r, const P& pt) { return r.unrotate(pt); }
}
}