163 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
166 PINOCCHIO_JOINT_DATA_TYPEDEF_TEMPLATE(JointDerived);
170 return *
static_cast<Derived *
>(
this);
172 const Derived & derived()
const 174 return *
static_cast<const Derived *
>(
this);
177 ConfigVectorTypeConstRef joint_q()
const 179 return derived().joint_q_accessor();
181 ConfigVectorTypeRef joint_q()
183 return derived().joint_q_accessor();
186 TangentVectorTypeConstRef joint_v()
const 188 return derived().joint_v_accessor();
190 TangentVectorTypeRef joint_v()
192 return derived().joint_v_accessor();
195 ConstraintTypeConstRef S()
const 197 return derived().S_accessor();
199 ConstraintTypeRef S()
201 return derived().S_accessor();
203 TansformTypeConstRef M()
const 205 return derived().M_accessor();
209 return derived().M_accessor();
211 MotionTypeConstRef v()
const 213 return derived().v_accessor();
217 return derived().v_accessor();
219 BiasTypeConstRef c()
const 221 return derived().c_accessor();
225 return derived().c_accessor();
228 UTypeConstRef U()
const 230 return derived().U_accessor();
234 return derived().U_accessor();
236 DTypeConstRef Dinv()
const 238 return derived().Dinv_accessor();
242 return derived().Dinv_accessor();
244 UDTypeConstRef UDinv()
const 246 return derived().UDinv_accessor();
250 return derived().UDinv_accessor();
252 DTypeConstRef StU()
const 254 return derived().StU_accessor();
258 return derived().StU_accessor();
261 std::string shortname()
const 263 return derived().shortname();
265 static std::string classname()
267 return Derived::classname();
270 void disp(std::ostream & os)
const 273 os << shortname() << endl;
278 jdata.derived().disp(os);
282 template<
typename OtherDerived>
285 return derived().isEqual(other.derived());
291 return internal::comparison_eq(joint_q(), other.joint_q())
292 && internal::comparison_eq(joint_v(), other.joint_v())
293 && internal::comparison_eq(S(), other.S()) && internal::comparison_eq(M(), other.M())
294 && internal::comparison_eq(v(), other.v()) && internal::comparison_eq(c(), other.c())
295 && internal::comparison_eq(U(), other.U())
296 && internal::comparison_eq(Dinv(), other.Dinv())
297 && internal::comparison_eq(UDinv(), other.UDinv());
301 template<
typename OtherDerived>
310 return derived().isNotEqual(other.derived());
316 return !(internal::comparison_eq(derived(), other.derived()));