mbsimflexiblebody  4.0.0
MBSim Flexible Body Module
revcardan.h
1/* Copyright (C) 2004-2015 MBSim Development Team
2 *
3 * This library is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU Lesser General Public
5 * License as published by the Free Software Foundation; either
6 * version 2.1 of the License, or (at your option) any later version.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public
14 * License along with this library; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16 *
17 * Contact: thorsten.schindler@mytum.de
18 */
19
20#ifndef REVCARDAN_H_
21#define REVCARDAN_H_
22
23#include "mbsimFlexibleBody/utils/angles.h"
24
25namespace MBSimFlexibleBody {
26
32 class RevCardan : public Angles {
33 public:
37 RevCardan();
38
42 ~RevCardan() override;
43
44 /* INTERFACE OF ROTATION */
45 virtual int getqSize() const { return 3; }
46 /********************************************************/
47
48 /* INTERFACE OF ANGLES */
49 fmatvec::Vec3 computet(const fmatvec::Vec& q) const override;
50 fmatvec::Vec3 computen(const fmatvec::Vec& q) const override;
51 fmatvec::Vec3 computeb(const fmatvec::Vec& q) const override;
52 fmatvec::Vec computentil(const fmatvec::Vec& q) const override;
53 fmatvec::Vec computebtil(const fmatvec::Vec& q) const override;
54 fmatvec::SqrMat computetq(const fmatvec::Vec& q) const override;
55 fmatvec::SqrMat computenq(const fmatvec::Vec& q) const override;
56 fmatvec::SqrMat computebq(const fmatvec::Vec& q) const override;
57 fmatvec::SqrMat computentilq(const fmatvec::Vec& q) const override;
58 fmatvec::SqrMat computebtilq(const fmatvec::Vec& q) const override;
59 fmatvec::Mat computetq2(const fmatvec::Vec& q) const override;
60 fmatvec::Mat computenq2(const fmatvec::Vec& q) const override;
61 fmatvec::Mat computebq2(const fmatvec::Vec& q) const override;
62 fmatvec::Mat computentilq2(const fmatvec::Vec& q) const override;
63 fmatvec::Mat computebtilq2(const fmatvec::Vec& q) const override;
64 /********************************************************/
65 };
66
67}
68
69#endif /*REVCARDAN_H_*/
70
node class for angle parametrisation
Definition: angles.h:35
reversed kardan parametrisation
Definition: revcardan.h:32
fmatvec::SqrMat computetq(const fmatvec::Vec &q) const override
Definition: revcardan.cc:98
fmatvec::Vec computebtil(const fmatvec::Vec &q) const override
Definition: revcardan.cc:86
fmatvec::Vec3 computeb(const fmatvec::Vec &q) const override
Definition: revcardan.cc:58
fmatvec::Vec3 computet(const fmatvec::Vec &q) const override
Definition: revcardan.cc:30
fmatvec::Mat computebtilq2(const fmatvec::Vec &q) const override
Definition: revcardan.cc:343
fmatvec::SqrMat computebtilq(const fmatvec::Vec &q) const override
Definition: revcardan.cc:186
RevCardan()
constructor
Definition: revcardan.cc:26
fmatvec::Vec3 computen(const fmatvec::Vec &q) const override
Definition: revcardan.cc:43
fmatvec::Vec computentil(const fmatvec::Vec &q) const override
Definition: revcardan.cc:73
~RevCardan() override
destructor
fmatvec::Mat computetq2(const fmatvec::Vec &q) const override
Definition: revcardan.cc:207
fmatvec::Mat computenq2(const fmatvec::Vec &q) const override
Definition: revcardan.cc:240
fmatvec::Mat computentilq2(const fmatvec::Vec &q) const override
Definition: revcardan.cc:310
fmatvec::Mat computebq2(const fmatvec::Vec &q) const override
Definition: revcardan.cc:275
fmatvec::SqrMat computebq(const fmatvec::Vec &q) const override
Definition: revcardan.cc:142
fmatvec::SqrMat computenq(const fmatvec::Vec &q) const override
Definition: revcardan.cc:119
fmatvec::SqrMat computentilq(const fmatvec::Vec &q) const override
Definition: revcardan.cc:165