25 #ifndef INCLUDED_AngVelTools_h_GUID_628878EF_DAFC_4486_36BC_6C47BD452AB0
26 #define INCLUDED_AngVelTools_h_GUID_628878EF_DAFC_4486_36BC_6C47BD452AB0
41 inline Eigen::Quaterniond
42 angVelVecToIncRot(Eigen::Vector3d
const &angVelVec,
double dt) {
43 return util::quat_exp(angVelVec * dt * 0.5).normalized();
47 inline Eigen::Vector3d incRotToAngVelVec(Eigen::Quaterniond
const &incRot,
50 if (incRot.w() >= 1. || incRot.vec().isZero(1e-10)) {
51 return Eigen::Vector3d::Zero();
53 auto angle = std::acos(incRot.w());
54 return incRot.vec().normalized() * angle * 2. / dt;
56 return util::quat_ln(incRot) * 2. / dt;
62 #endif // INCLUDED_AngVelTools_h_GUID_628878EF_DAFC_4486_36BC_6C47BD452AB0
Header wrapping include of and for warning quieting.