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_Bushing.h
Go to the documentation of this file.
1
#ifndef SimTK_SIMBODY_MOBILIZED_BODY_BUSHING_H_
2
#define SimTK_SIMBODY_MOBILIZED_BODY_BUSHING_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) 2012-13 Stanford University and the Authors. *
13
* Authors: Michael Sherman *
14
* Contributors: *
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
86
class
SimTK_SIMBODY_EXPORT
MobilizedBody
::
Bushing
:
public
MobilizedBody
{
87
public
:
90
Bushing
() {}
91
97
Bushing
(
MobilizedBody
& parent,
const
Transform
& X_PF,
98
const
Body
& bodyInfo,
const
Transform
& X_BM,
Direction
=Forward);
99
102
Bushing
(
MobilizedBody
& parent,
const
Body
& bodyInfo,
Direction
=Forward);
103
109
Bushing
& setDefaultInboardFrame(
const
Transform
& X_PF)
110
{ (void)
MobilizedBody::setDefaultInboardFrame
(X_PF);
return
*
this
; }
111
117
Bushing
& setDefaultOutboardFrame(
const
Transform
& X_BM)
118
{ (void)
MobilizedBody::setDefaultOutboardFrame
(X_BM);
return
*
this
; }
119
129
Bushing
& setDefaultTransform(
const
Transform
& X_FM)
130
{
Vec6
q;
131
q.
updSubVec
<3>(0) = X_FM.
R
().
convertRotationToBodyFixedXYZ
();
132
q.
updSubVec
<3>(3) = X_FM.
p
();
133
return
setDefaultQ(q); }
134
137
Transform
getDefaultTransform
()
const
{
138
const
Vec6
& q = getDefaultQ();
139
return
Transform
(
Rotation
(
BodyRotationSequence
,
140
q[0],
XAxis
, q[1],
YAxis
, q[2],
ZAxis
),
141
q.
getSubVec
<3>(3));
142
}
143
146
Bushing
& addBodyDecoration(
const
Transform
& X_BD,
const
DecorativeGeometry
& g)
147
{ (void)
MobilizedBody::addBodyDecoration
(X_BD,g);
return
*
this
; }
148
152
Bushing
& addOutboardDecoration(
const
Transform
& X_MD,
const
DecorativeGeometry
& g)
153
{ (void)
MobilizedBody::addOutboardDecoration
(X_MD,g);
return
*
this
; }
154
157
Bushing
& addInboardDecoration (
const
Transform
& X_FD,
const
DecorativeGeometry
& g)
158
{ (void)
MobilizedBody::addInboardDecoration
(X_FD,g);
return
*
this
; }
159
167
const
Vec6
& getDefaultQ()
const
;
174
Bushing
& setDefaultQ(
const
Vec6
& q);
175
179
const
Vec6
& getQ(
const
State
& state)
const
;
187
const
Vec6
& getQDot(
const
State
& state)
const
;
194
const
Vec6
& getQDotDot(
const
State
& state)
const
;
195
200
const
Vec6
& getU(
const
State
& state)
const
;
205
const
Vec6
& getUDot(
const
State
& state)
const
;
206
214
void
setQ(
State
& state,
const
Vec6
& q)
const
;
224
void
setU(
State
& state,
const
Vec6
& u)
const
;
225
232
const
Vec6
& getMyPartQ(
const
State
& state,
const
Vector
& qlike)
const
;
235
const
Vec6
& getMyPartU(
const
State
& state,
const
Vector
& ulike)
const
;
236
240
Vec6
& updMyPartQ(
const
State
& state,
Vector
& qlike)
const
;
244
Vec6
& updMyPartU(
const
State
& state,
Vector
& ulike)
const
;
// Hide from Doxygen.
248
SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS
(
Bushing
, BushingImpl,
MobilizedBody
);
250
};
251
252
253
}
// namespace SimTK
254
255
#endif // SimTK_SIMBODY_MOBILIZED_BODY_BUSHING_H_
256
257
258
Simbody
include
simbody
internal
MobilizedBody_Bushing.h
Generated on Tue Dec 2 2014 13:13:27 for Simbody by
1.8.1.2