Program listing for file kernel/src/utils/SiconosTools/RotationQuaternion.hpp

Program listing for file kernel/src/utils/SiconosTools/RotationQuaternion.hpp#

 1#ifndef ROTATIONQUATERNION_H
 2#define ROTATIONQUATERNION_H
 3#include "SiconosVector.hpp"
 4
 5
 6double axisAngleFromQuaternion(double q0, double q1, double q2, double q3, SP::SiconosVector axis);
 7
 8
 9double axisAngleFromConfiguration(SP::SiconosVector q, SP::SiconosVector axis);
10
11
12void rotationVectorFromQuaternion(double q0, double q1, double q2, double q3, SP::SiconosVector rotationVector);
13
14
15void rotationVectorFromConfiguration(SP::SiconosVector q, SP::SiconosVector rotationVector);
16
17
18void quaternionFromAxisAngle(SP::SiconosVector axis, double angle, SP::SiconosVector q);
19
20
21void quaternionFromRotationVector(SP::SiconosVector rotationVector, SP::SiconosVector q);
22
23void quaternionFromTwistVector(SiconosVector& twist, SiconosVector& q);
24
25
26double quaternionNorm(const SiconosVector &q);
27
28
29
30void normalizeq(SP::SiconosVector q);
31
32
33void normalizeq(SiconosVector &q);
34
35
36
37void computeRotationMatrix(double q0, double q1, double q2, double q3, SP::SimpleMatrix rotationMatrix);
38
39
40
41void computeRotationMatrix(SP::SiconosVector q,  SP::SimpleMatrix rotationMatrix);
42
43
44void computeRotationMatrixTransposed(SP::SiconosVector q, SP::SimpleMatrix rotationMatrix);
45
46
47void quaternionRotate(SP::SiconosVector q, SP::SiconosVector v);
48
49
50void quaternionRotate(double q0, double q1, double q2, double q3, SiconosVector& v);
51void quaternionRotate(double q0, double q1, double q2, double q3, SP::SiconosVector v);
52void quaternionRotate(double q0, double q1, double q2, double q3, SP::SimpleMatrix m);
53
54
55void quaternionRotate(SP::SiconosVector q, SP::SimpleMatrix m);
56
57
58
59
60void changeFrameAbsToBody(const SiconosVector& q, SiconosVector& v);
61void changeFrameAbsToBody(SP::SiconosVector q, SP::SiconosVector v);
62void changeFrameAbsToBody(SP::SiconosVector q, SP::SimpleMatrix m);
63
64void changeFrameBodyToAbs(const SiconosVector& q, SiconosVector& v);
65void changeFrameBodyToAbs(SP::SiconosVector q, SP::SiconosVector v);
66void changeFrameBodyToAbs(SP::SiconosVector q, SP::SimpleMatrix m);
67
68void compositionLawLieGroup(const SiconosVector& a, SiconosVector& b, SiconosVector& ab);
69
70void compositionLawLieGroup(const SiconosVector& a, SiconosVector& b);
71
72#endif