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