10 #ifndef EIGEN_LGSM_LIE_GROUP_H 11 #define EIGEN_LGSM_LIE_GROUP_H 32 template<
class G,
class Derived>
45 typedef typename internal::traits<Derived>::Scalar
Scalar;
49 typedef typename internal::traits<Derived>::PlainObject
PlainObject;
53 typedef typename Derived::Algebra
Algebra;
58 PlainObject inverse()
const;
60 static PlainObject Identity();
65 AdjointMatrix adjoint(
void)
const;
67 Algebra adjoint(
const Algebra& )
const;
69 CoAlgebra adjointTr(
const CoAlgebra& )
const;
74 Algebra log(
const Scalar precision = 1e-6)
const;
80 inline const Derived&
derived()
const {
return *
static_cast<const Derived*
>(
this); }
82 inline Derived&
derived() {
return *
static_cast<Derived*
>(
this); }
85 inline Coefficients&
get();
87 inline const Coefficients&
get()
const;
96 struct traits<
LieGroup<G> > :
public traits<LieGroupBase<G, LieGroup<G> > >
123 EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(
LieGroup)
149 template<
class G,
int MapOptions,
typename Str
ideType>
150 struct traits<Map<
LieGroup<G>, MapOptions, StrideType> > :
public traits<LieGroupBase<G, Map<LieGroup<G>, MapOptions, StrideType> > >
156 template<
class G,
int MapOptions,
typename Str
ideType>
157 struct traits<Map<const
LieGroup<G>, MapOptions, StrideType> > :
public traits<LieGroupBase<G, Map<const LieGroup<G>, MapOptions, StrideType> > >
178 template<
class G,
int MapOptions,
typename Str
ideType>
class Map<
LieGroup<G>, MapOptions, StrideType> :
public LieGroupBase<G, Map<LieGroup<G>, MapOptions, StrideType> > {
184 EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Map)
191 inline Map(const G& g) : m_coeffs(g) {};
193 template<
int _Rows,
int _Cols,
int _Options,
int _MaxRows,
int _MaxCols>
194 inline Map(Array<Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>& g) : m_coeffs(g.data()) {};
198 inline Map(
const Map& m) : m_coeffs(m.get()) {};
210 template<
class G,
int MapOptions,
typename Str
ideType>
class Map<const
LieGroup<G>, MapOptions, StrideType> :
public LieGroupBase<G, Map<const LieGroup<G>, MapOptions, StrideType> > {
216 EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Map)
223 inline Map(const G& g) : m_coeffs(g) {};
225 template<
int _Rows,
int _Cols,
int _Options,
int _MaxRows,
int _MaxCols>
226 inline Map(Array<Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>& g) : m_coeffs(g.data()) {};
230 inline Map(
const Map& m) : m_coeffs(m.get()) {};
Derived::CoAlgebra CoAlgebra
Derived::AdjointMatrix AdjointMatrix
internal::traits< LieGroup< G > >::Coefficients Coefficients
internal::traits< Map< LieGroup< G >, MapOptions, StrideType > >::Coefficients Coefficients
LieGroupBase< G, LieGroup< G > > Base
Map(Array< Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &g)
const Derived & derived() const
LieGroupBase< G, Map< LieGroup< G >, MapOptions, StrideType > > Base
Base class for all Lie Group class.
Map< G, MapOptions, StrideType > Coefficients
LieGroup< G > PlainObject
internal::traits< Derived >::PlainObject PlainObject
Map(Array< Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &g)
LieGroupBase< G, Map< const LieGroup< G >, MapOptions, StrideType > > Base
internal::traits< Map< const LieGroup< G >, MapOptions, StrideType > >::Scalar Scalar
Base class for all Lie Algebra class.
internal::traits< Map< LieGroup< G >, MapOptions, StrideType > >::Scalar Scalar
Map< const G, MapOptions, StrideType > Coefficients
Class describing an element of a Lie Group.
internal::traits< Map< const LieGroup< G >, MapOptions, StrideType > >::Coefficients Coefficients
internal::traits< Derived >::Scalar Scalar
Derived::Coefficients Coefficients