Simbody
3.4
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
MobilizedBody_Gimbal.h
Go to the documentation of this file.
1
#ifndef SimTK_SIMBODY_MOBILIZED_BODY_GIMBAL_H_
2
#define SimTK_SIMBODY_MOBILIZED_BODY_GIMBAL_H_
3
4
/* -------------------------------------------------------------------------- *
5
* Simbody(tm) *
6
* -------------------------------------------------------------------------- *
7
* This is part of the SimTK biosimulation toolkit originating from *
8
* Simbios, the NIH National Center for Physics-Based Simulation of *
9
* Biological Structures at Stanford, funded under the NIH Roadmap for *
10
* Medical Research, grant U54 GM072970. See https://simtk.org/home/simbody. *
11
* *
12
* Portions copyright (c) 2007-13 Stanford University and the Authors. *
13
* Authors: Michael Sherman *
14
* Contributors: Paul Mitiguy, Peter Eastman *
15
* *
16
* Licensed under the Apache License, Version 2.0 (the "License"); you may *
17
* not use this file except in compliance with the License. You may obtain a *
18
* copy of the License at http://www.apache.org/licenses/LICENSE-2.0. *
19
* *
20
* Unless required by applicable law or agreed to in writing, software *
21
* distributed under the License is distributed on an "AS IS" BASIS, *
22
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
23
* See the License for the specific language governing permissions and *
24
* limitations under the License. *
25
* -------------------------------------------------------------------------- */
26
30
#include "
simbody/internal/MobilizedBody.h
"
31
32
namespace
SimTK {
33
69
class
SimTK_SIMBODY_EXPORT
MobilizedBody
::
Gimbal
:
public
MobilizedBody
{
70
public
:
73
Gimbal
() {}
74
80
Gimbal
(
MobilizedBody
& parent,
const
Transform
& X_PF,
81
const
Body
& bodyInfo,
const
Transform
& X_BM,
Direction
=Forward);
82
85
Gimbal
(
MobilizedBody
& parent,
const
Body
& bodyInfo,
Direction
=Forward);
86
92
Gimbal
& setDefaultInboardFrame(
const
Transform
& X_PF)
93
{ (void)
MobilizedBody::setDefaultInboardFrame
(X_PF);
return
*
this
; }
94
100
Gimbal
& setDefaultOutboardFrame(
const
Transform
& X_BM)
101
{ (void)
MobilizedBody::setDefaultOutboardFrame
(X_BM);
return
*
this
; }
102
111
Gimbal
& setDefaultRotation(
const
Rotation
& R_FM)
112
{
return
setDefaultQ(R_FM.
convertRotationToBodyFixedXYZ
()); }
113
120
Rotation
getDefaultRotation
()
const
{
121
const
Vec3
& q = getDefaultQ();
122
return
Rotation
(
BodyRotationSequence
,
123
q[0],
XAxis
, q[1],
YAxis
, q[2],
ZAxis
);
124
}
125
128
Gimbal
& addBodyDecoration(
const
Transform
& X_BD,
const
DecorativeGeometry
& g)
129
{ (void)
MobilizedBody::addBodyDecoration
(X_BD,g);
return
*
this
; }
130
134
Gimbal
& addOutboardDecoration(
const
Transform
& X_MD,
const
DecorativeGeometry
& g)
135
{ (void)
MobilizedBody::addOutboardDecoration
(X_MD,g);
return
*
this
; }
136
139
Gimbal
& addInboardDecoration (
const
Transform
& X_FD,
const
DecorativeGeometry
& g)
140
{ (void)
MobilizedBody::addInboardDecoration
(X_FD,g);
return
*
this
; }
141
142
146
Gimbal
& setDefaultRadius(
Real
r);
148
Real
getDefaultRadius()
const
;
149
155
const
Vec3
& getDefaultQ()
const
;
// X,Y,Z body-fixed Euler angles
161
Gimbal
& setDefaultQ(
const
Vec3
& q);
162
166
const
Vec3
& getQ(
const
State
& state)
const
;
171
const
Vec3
& getQDot(
const
State
& state)
const
;
177
const
Vec3
& getQDotDot(
const
State
& state)
const
;
178
183
const
Vec3
& getU(
const
State
& state)
const
;
188
const
Vec3
& getUDot(
const
State
& state)
const
;
189
194
void
setQ(
State
& state,
const
Vec3
& q)
const
;
199
void
setU(
State
& state,
const
Vec3
& u)
const
;
200
207
const
Vec3
& getMyPartQ(
const
State
& state,
const
Vector
& qlike)
const
;
210
const
Vec3
& getMyPartU(
const
State
& state,
const
Vector
& ulike)
const
;
211
215
Vec3
& updMyPartQ(
const
State
& state,
Vector
& qlike)
const
;
219
Vec3
& updMyPartU(
const
State
& state,
Vector
& ulike)
const
;
// Hide from Doxygen.
223
SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS
(
Gimbal
, GimbalImpl,
MobilizedBody
);
225
};
226
227
228
}
// namespace SimTK
229
230
#endif // SimTK_SIMBODY_MOBILIZED_BODY_GIMBAL_H_
231
232
233
Simbody
include
simbody
internal
MobilizedBody_Gimbal.h
Generated on Tue Dec 2 2014 13:13:27 for Simbody by
1.8.1.2