Moved things to inl

release/4.3a0
Frank Dellaert 2019-05-06 16:37:34 -04:00 committed by Fan Jiang
parent e93149babb
commit f7ad80673c
2 changed files with 36 additions and 13 deletions

View File

@ -97,6 +97,32 @@ typename SO<N>::TangentVector SO<N>::ChartAtOrigin::Local(const SO& R,
return -2 * Vee(X);
}
template <int N>
typename SO<N>::MatrixDD SO<N>::AdjointMap() const {
throw std::runtime_error(
"SO<N>::AdjointMap only implemented for SO3 and SO4.");
}
template <int N>
SO<N> SO<N>::Expmap(const TangentVector& omega, ChartJacobian H) {
throw std::runtime_error("SO<N>::Expmap only implemented for SO3 and SO4.");
}
template <int N>
typename SO<N>::MatrixDD SO<N>::ExpmapDerivative(const TangentVector& omega) {
throw std::runtime_error("SO<N>::ExpmapDerivative only implemented for SO3.");
}
template <int N>
typename SO<N>::TangentVector SO<N>::Logmap(const SO& R, ChartJacobian H) {
throw std::runtime_error("SO<N>::Logmap only implemented for SO3 and SO4.");
}
template <int N>
typename SO<N>::MatrixDD SO<N>::LogmapDerivative(const TangentVector& omega) {
throw std::runtime_error("O<N>::LogmapDerivative only implemented for SO3.");
}
template <int N>
typename SO<N>::VectorN2 SO<N>::vec(
OptionalJacobian<internal::NSquaredSO(N), dimension> H) const {

View File

@ -220,27 +220,24 @@ class SO : public LieGroup<SO<N>, internal::DimensionSO(N)> {
/// @name Lie Group
/// @{
MatrixDD AdjointMap() const {
throw std::runtime_error(
"SO<N>::AdjointMap only implemented for SO3 and SO4.");
}
/// Adjoint map
MatrixDD AdjointMap() const;
/**
* Exponential map at identity - create a rotation from canonical coordinates
*/
static SO Expmap(const TangentVector& omega, ChartJacobian H = boost::none) {
throw std::runtime_error("SO<N>::Expmap only implemented for SO3 and SO4.");
}
static SO Expmap(const TangentVector& omega, ChartJacobian H = boost::none);
/// Derivative of Expmap, currently only defined for SO3
static MatrixDD ExpmapDerivative(const TangentVector& omega);
/**
* Log map at identity - returns the canonical coordinates of this rotation
*/
static TangentVector Logmap(const SO& R, ChartJacobian H = boost::none) {
throw std::runtime_error("SO<N>::Logmap only implemented for SO3 and SO4.");
}
static TangentVector Logmap(const SO& R, ChartJacobian H = boost::none);
// template <int N_ = N, typename = IsSO3<N_>>
static Matrix3 LogmapDerivative(const Vector3& omega);
/// Derivative of Logmap, currently only defined for SO3
static MatrixDD LogmapDerivative(const TangentVector& omega);
// inverse with optional derivative
using LieGroup<SO<N>, internal::DimensionSO(N)>::inverse;