20#ifndef _ROTATION_ABOUT_AXES_ZYX_MAPPING_H_
21#define _ROTATION_ABOUT_AXES_ZYX_MAPPING_H_
23#include "mbsim/functions/function.h"
33 int getArgSize()
const override {
return 3; }
34 fmatvec::MatV operator()(
const Arg &q)
override {
35 double alpha = q.e(0);
37 double cos_beta = cos(beta);
38 if(fabs(cos_beta)<=1e-13)
39 Element::throwError(
"Singularity in rotation.");
40 double sin_beta = sin(beta);
41 double cos_alpha = cos(alpha);
42 double sin_alpha = sin(alpha);
43 double tan_beta = sin_beta/cos_beta;
44 T.e(0,0) = cos_alpha*tan_beta;
45 T.e(0,1) = sin_alpha*tan_beta;
46 T.e(1,0) = -sin_alpha;
48 T.e(2,0) = cos_alpha/cos_beta;
49 T.e(2,1) = sin_alpha/cos_beta;
Definition: function.h:53
Definition: rotation_about_axes_zyx_mapping.h:28
namespace MBSim
Definition: bilateral_constraint.cc:30