mbsimflexiblebody 4.0.0 MBSim Flexible Body Module

cardan.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 _CARDAN_H_
21 #define _CARDAN_H_
22
23 #include "mbsimFlexibleBody/utils/angles.h"
24
25 namespace MBSimFlexibleBody {
26
32 class Cardan : public Angles {
33 public:
37 Cardan();
38
42 ~Cardan() 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 /* OVERWRITE FUNCTIONS OF ANGLES */
72 fmatvec::Vec computeOmega(const fmatvec::Vec& q,const fmatvec::Vec& qt) const override;
73
78 fmatvec::SqrMat computeT(const fmatvec::Vec& q) const override;
79 /********************************************************/
80 };
81
82 }
83
84 #endif /* _CARDAN_H_ */
85
MBSimFlexibleBody::Cardan::computeOmega
fmatvec::Vec computeOmega(const fmatvec::Vec &q, const fmatvec::Vec &qt) const override
Definition: cardan.cc:282
MBSimFlexibleBody::Cardan::computentilq
fmatvec::SqrMat computentilq(const fmatvec::Vec &q) const override
Definition: cardan.cc:155
MBSimFlexibleBody::Cardan::~Cardan
~Cardan() override
destructor
MBSimFlexibleBody::Cardan::computebtilq
fmatvec::SqrMat computebtilq(const fmatvec::Vec &q) const override
Definition: cardan.cc:161
MBSimFlexibleBody::Angles
node class for angle parametrisation
Definition: angles.h:35
MBSimFlexibleBody::Cardan::computentilq2
fmatvec::Mat computentilq2(const fmatvec::Vec &q) const override
Definition: cardan.cc:270
MBSimFlexibleBody::Cardan::computeb
fmatvec::Vec3 computeb(const fmatvec::Vec &q) const override
Definition: cardan.cc:63
MBSimFlexibleBody::Cardan::computebq2
fmatvec::Mat computebq2(const fmatvec::Vec &q) const override
Definition: cardan.cc:237
MBSimFlexibleBody::Cardan::computebq
fmatvec::SqrMat computebq(const fmatvec::Vec &q) const override
Definition: cardan.cc:134
MBSimFlexibleBody::Cardan::computebtilq2
fmatvec::Mat computebtilq2(const fmatvec::Vec &q) const override
Definition: cardan.cc:276
MBSimFlexibleBody::Cardan::computenq2
fmatvec::Mat computenq2(const fmatvec::Vec &q) const override
Definition: cardan.cc:202
MBSimFlexibleBody::Cardan
cardan parametrisation
Definition: cardan.h:32
MBSimFlexibleBody::Cardan::computenq
fmatvec::SqrMat computenq(const fmatvec::Vec &q) const override
Definition: cardan.cc:111
MBSimFlexibleBody::Cardan::computen
fmatvec::Vec3 computen(const fmatvec::Vec &q) const override
Definition: cardan.cc:48
MBSimFlexibleBody::Cardan::Cardan
Cardan()
constructor
Definition: cardan.cc:29
MBSimFlexibleBody::Cardan::computeT
fmatvec::SqrMat computeT(const fmatvec::Vec &q) const override
Definition: cardan.cc:308
MBSimFlexibleBody::Cardan::computebtil
fmatvec::Vec computebtil(const fmatvec::Vec &q) const override
Definition: cardan.cc:82
MBSimFlexibleBody::Cardan::computetq2
fmatvec::Mat computetq2(const fmatvec::Vec &q) const override
Definition: cardan.cc:167
MBSimFlexibleBody::Cardan::computet
fmatvec::Vec3 computet(const fmatvec::Vec &q) const override
Definition: cardan.cc:33
MBSimFlexibleBody::Cardan::computentil
fmatvec::Vec computentil(const fmatvec::Vec &q) const override
Definition: cardan.cc:76
MBSimFlexibleBody::Cardan::computetq
fmatvec::SqrMat computetq(const fmatvec::Vec &q) const override
Definition: cardan.cc:88