9 int _q2m(
double& S,
double& qw,
const double& r00 ,
const double& r10 ,
const double& r20 ,
const double& r01 ,
const double& r11 ,
const double& r21 ,
const double& r02 ,
const double& r12 ,
const double& r22 ){
10 double tr=r00 + r11 + r22;
12 S = sqrt(tr + 1.0) * 2;
18 }
else if ((r00 > r11)&(r00 > r22)) {
19 S = sqrt(1.0 + r00 - r11 - r22) * 2;
25 }
else if (r11 > r22) {
26 S = sqrt(1.0 + r11 - r00 - r22) * 2;
33 S = sqrt(1.0 + r22 - r00 - r11) * 2;
42 void compute_dq_dR ( Eigen::Matrix<double, 3, 9, Eigen::ColMajor>& dq_dR ,
const double& r11 ,
const double& r21 ,
const double& r31 ,
const double& r12 ,
const double& r22 ,
const double& r32 ,
const double& r13 ,
const double& r23 ,
const double& r33 ){
45 int whichCase=
_q2m( S, qw, r11 , r21 , r31 , r12 , r22 , r32 , r13 , r23 , r33 );
48 case 0:
compute_dq_dR_w(dq_dR, S, r11 , r21 , r31 , r12 , r22 , r32 , r13 , r23 , r33 );
50 case 1:
compute_dq_dR_x(dq_dR, S, r11 , r21 , r31 , r12 , r22 , r32 , r13 , r23 , r33 );
52 case 2:
compute_dq_dR_y(dq_dR, S, r11 , r21 , r31 , r12 , r22 , r32 , r13 , r23 , r33 );
54 case 3:
compute_dq_dR_z(dq_dR, S, r11 , r21 , r31 , r12 , r22 , r32 , r13 , r23 , r33 );
int _q2m(double &S, double &qw, const double &r00, const double &r10, const double &r20, const double &r01, const double &r11, const double &r21, const double &r02, const double &r12, const double &r22)
void compute_dq_dR(Eigen::Matrix< double, 3, 9, Eigen::ColMajor > &dq_dR, const double &r11, const double &r21, const double &r31, const double &r12, const double &r22, const double &r32, const double &r13, const double &r23, const double &r33)
void compute_dq_dR_x(Eigen::Matrix< double, 3, 9 > &dq_dR_x, const double &qx, const double &r00, const double &r10, const double &r20, const double &r01, const double &r11, const double &r21, const double &r02, const double &r12, const double &r22)
void compute_dq_dR_w(Eigen::Matrix< double, 3, 9 > &dq_dR_w, const double &qw, const double &r00, const double &r10, const double &r20, const double &r01, const double &r11, const double &r21, const double &r02, const double &r12, const double &r22)
void compute_dq_dR_z(Eigen::Matrix< double, 3, 9 > &dq_dR_z, const double &qz, const double &r00, const double &r10, const double &r20, const double &r01, const double &r11, const double &r21, const double &r02, const double &r12, const double &r22)
void compute_dq_dR_y(Eigen::Matrix< double, 3, 9 > &dq_dR_y, const double &qy, const double &r00, const double &r10, const double &r20, const double &r01, const double &r11, const double &r21, const double &r02, const double &r12, const double &r22)