20 #ifndef _ROTATION_ABOUT_AXES_XYZ_H_
21 #define _ROTATION_ABOUT_AXES_XYZ_H_
23 #include "mbsim/functions/function.h"
35 fmatvec::Mat3xV J, Jd;
38 int getArgSize()
const {
return 3; }
39 fmatvec::RotMat3 operator()(
const Arg &q) {
50 A.e(1,0) = sina*sinb*cosg+cosa*sing;
51 A.e(2,0) = -cosa*sinb*cosg+sina*sing;
52 A.e(0,1) = -cosb*sing;
53 A.e(1,1) = -sing*sinb*sina+cosa*cosg;
54 A.e(2,1) = cosa*sinb*sing+sina*cosg;
56 A.e(1,2) = -sina*cosb;
60 typename B::DRetDArg parDer(
const Arg &q) {
71 J.e(1,2) = -sina*cosb;
77 typename B::DRetDArg parDerDirDer(
const Arg &qd,
const Arg &q) {
91 Jd.e(1,2) = -cosa*cosb*ad + sina*sinb*bd;
94 Jd.e(2,2) = -sina*cosb*ad - cosa*sinb*bd;
Definition: planar_contour.h:31
rotation class for rotation about all three axis using the cardan description
Definition: rotation_about_axes_xyz.h:31