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
25namespace 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
node class for angle parametrisation
Definition: angles.h:35
cardan parametrisation
Definition: cardan.h:32
Cardan()
constructor
Definition: cardan.cc:29
fmatvec::SqrMat computetq(const fmatvec::Vec &q) const override
Definition: cardan.cc:88
fmatvec::Vec3 computeb(const fmatvec::Vec &q) const override
Definition: cardan.cc:63
~Cardan() override
destructor
fmatvec::SqrMat computeT(const fmatvec::Vec &q) const override
Definition: cardan.cc:308
fmatvec::Vec computentil(const fmatvec::Vec &q) const override
Definition: cardan.cc:76
fmatvec::Mat computebtilq2(const fmatvec::Vec &q) const override
Definition: cardan.cc:276
fmatvec::Vec computeOmega(const fmatvec::Vec &q, const fmatvec::Vec &qt) const override
Definition: cardan.cc:282
fmatvec::SqrMat computenq(const fmatvec::Vec &q) const override
Definition: cardan.cc:111
fmatvec::SqrMat computentilq(const fmatvec::Vec &q) const override
Definition: cardan.cc:155
fmatvec::SqrMat computebtilq(const fmatvec::Vec &q) const override
Definition: cardan.cc:161
fmatvec::Vec3 computen(const fmatvec::Vec &q) const override
Definition: cardan.cc:48
fmatvec::Mat computenq2(const fmatvec::Vec &q) const override
Definition: cardan.cc:202
fmatvec::Vec3 computet(const fmatvec::Vec &q) const override
Definition: cardan.cc:33
fmatvec::Mat computebq2(const fmatvec::Vec &q) const override
Definition: cardan.cc:237
fmatvec::Vec computebtil(const fmatvec::Vec &q) const override
Definition: cardan.cc:82
fmatvec::Mat computetq2(const fmatvec::Vec &q) const override
Definition: cardan.cc:167
fmatvec::SqrMat computebq(const fmatvec::Vec &q) const override
Definition: cardan.cc:134
fmatvec::Mat computentilq2(const fmatvec::Vec &q) const override
Definition: cardan.cc:270