5 #ifndef __pinocchio_lie_group_variant_visitor_hpp__
6 #define __pinocchio_lie_group_variant_visitor_hpp__
21 template<
typename LieGroupCollection>
22 inline int nq(
const LieGroupGenericTpl<LieGroupCollection> & lg);
32 template<
typename LieGroupCollection>
33 inline int nv(
const LieGroupGenericTpl<LieGroupCollection> & lg);
42 template<
typename LieGroupCollection>
43 inline std::string
name(
const LieGroupGenericTpl<LieGroupCollection> & lg);
52 template<
typename LieGroupCollection>
54 Matrix<typename LieGroupCollection::Scalar, Eigen::Dynamic, 1, LieGroupCollection::Options>
55 neutral(
const LieGroupGenericTpl<LieGroupCollection> & lg);
65 template<
typename LieGroupCollection,
class ConfigIn_t,
class Tangent_t,
class ConfigOut_t>
67 const LieGroupGenericTpl<LieGroupCollection> & lg,
68 const Eigen::MatrixBase<ConfigIn_t> &
q,
69 const Eigen::MatrixBase<Tangent_t> &
v,
70 const Eigen::MatrixBase<ConfigOut_t> &
qout);
72 template<
typename LieGroupCollection,
class Config_t>
74 const LieGroupGenericTpl<LieGroupCollection> & lg,
const Eigen::MatrixBase<Config_t> &
qout);
76 template<
typename LieGroupCollection,
class Config_t>
78 const LieGroupGenericTpl<LieGroupCollection> & lg,
const Eigen::MatrixBase<Config_t> &
qout);
80 template<
typename LieGroupCollection,
class Config_t>
82 const LieGroupGenericTpl<LieGroupCollection> & lg,
83 const Eigen::MatrixBase<Config_t> &
qin,
85 Eigen::NumTraits<typename Config_t::Scalar>::dummy_precision());
87 template<
typename LieGroupCollection,
class ConfigL_t,
class ConfigR_t>
89 const LieGroupGenericTpl<LieGroupCollection> & lg,
90 const Eigen::MatrixBase<ConfigL_t> &
q0,
91 const Eigen::MatrixBase<ConfigR_t> &
q1,
94 template<
typename LieGroupCollection,
class ConfigL_t,
class ConfigR_t>
96 const LieGroupGenericTpl<LieGroupCollection> & lg,
97 const Eigen::MatrixBase<ConfigL_t> &
q0,
98 const Eigen::MatrixBase<ConfigR_t> &
q1);
100 template<
typename LieGroupCollection,
class ConfigL_t,
class ConfigR_t>
103 const Eigen::MatrixBase<ConfigL_t> &
q0,
104 const Eigen::MatrixBase<ConfigR_t> &
q1)
109 template<
typename LieGroupCollection,
class ConfigL_t,
class ConfigR_t,
class Tangent_t>
111 const LieGroupGenericTpl<LieGroupCollection> & lg,
112 const Eigen::MatrixBase<ConfigL_t> &
q0,
113 const Eigen::MatrixBase<ConfigR_t> &
q1,
114 const Eigen::MatrixBase<Tangent_t> &
v);
116 template<
typename LieGroupCollection,
class ConfigL_t,
class ConfigR_t,
class ConfigOut_t>
118 const LieGroupGenericTpl<LieGroupCollection> & lg,
119 const Eigen::MatrixBase<ConfigL_t> &
q0,
120 const Eigen::MatrixBase<ConfigR_t> &
q1,
121 const Eigen::MatrixBase<ConfigOut_t> &
qout);
123 template<
typename LieGroupCollection,
class ConfigL_t,
class ConfigR_t,
class ConfigOut_t>
125 const LieGroupGenericTpl<LieGroupCollection> & lg,
126 const Eigen::MatrixBase<ConfigL_t> &
q0,
127 const Eigen::MatrixBase<ConfigR_t> &
q1,
129 const Eigen::MatrixBase<ConfigOut_t> &
qout);
131 template<
typename LieGroupCollection,
class Config_t,
class Tangent_t,
class JacobianOut_t>
133 const LieGroupGenericTpl<LieGroupCollection> & lg,
134 const Eigen::MatrixBase<Config_t> &
q,
135 const Eigen::MatrixBase<Tangent_t> &
v,
136 const Eigen::MatrixBase<JacobianOut_t> &
J,
141 typename LieGroupCollection,
147 const LieGroupGenericTpl<LieGroupCollection> & lg,
148 const Eigen::MatrixBase<Config_t> &
q,
149 const Eigen::MatrixBase<Tangent_t> &
v,
150 const Eigen::MatrixBase<JacobianIn_t> & J_in,
152 const Eigen::MatrixBase<JacobianOut_t> & J_out,
157 typename LieGroupCollection,
163 const LieGroupGenericTpl<LieGroupCollection> & lg,
164 const Eigen::MatrixBase<Config_t> &
q,
165 const Eigen::MatrixBase<Tangent_t> &
v,
167 const Eigen::MatrixBase<JacobianIn_t> & J_in,
168 const Eigen::MatrixBase<JacobianOut_t> & J_out,
172 template<
typename LieGroupCollection,
class ConfigL_t,
class ConfigR_t,
class JacobianOut_t>
174 const LieGroupGenericTpl<LieGroupCollection> & lg,
175 const Eigen::MatrixBase<ConfigL_t> &
q0,
176 const Eigen::MatrixBase<ConfigR_t> &
q1,
177 const Eigen::MatrixBase<JacobianOut_t> &
J,
181 typename LieGroupCollection,
187 const LieGroupGenericTpl<LieGroupCollection> & lg,
188 const Eigen::MatrixBase<ConfigL_t> &
q0,
189 const Eigen::MatrixBase<ConfigR_t> &
q1,
190 const Eigen::MatrixBase<JacobianIn_t> & Jin,
192 const Eigen::MatrixBase<JacobianOut_t> & Jout,
196 typename LieGroupCollection,
202 const LieGroupGenericTpl<LieGroupCollection> & lg,
203 const Eigen::MatrixBase<ConfigL_t> &
q0,
204 const Eigen::MatrixBase<ConfigR_t> &
q1,
206 const Eigen::MatrixBase<JacobianIn_t> & Jin,
207 const Eigen::MatrixBase<JacobianOut_t> & Jout,
211 typename LieGroupCollection,
217 const LieGroupGenericTpl<LieGroupCollection> & lg,
218 const Eigen::MatrixBase<Config_t> &
q,
219 const Eigen::MatrixBase<Tangent_t> &
v,
220 const Eigen::MatrixBase<JacobianIn_t> & J_in,
221 const Eigen::MatrixBase<JacobianOut_t> & J_out,
224 template<
typename LieGroupCollection,
class Config_t,
class Tangent_t,
class JacobianOut_t>
226 const LieGroupGenericTpl<LieGroupCollection> & lg,
227 const Eigen::MatrixBase<Config_t> &
q,
228 const Eigen::MatrixBase<Tangent_t> &
v,
229 const Eigen::MatrixBase<JacobianOut_t> &
J,
234 #include "pinocchio/multibody/liegroup/liegroup-variant-visitors.hxx"
236 #endif // ifndef __pinocchio_lie_group_variant_visitor_hpp__