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_Planar.h
Go to the documentation of this file.
1
#ifndef SimTK_SIMBODY_MOBILIZED_BODY_PLANAR_H_
2
#define SimTK_SIMBODY_MOBILIZED_BODY_PLANAR_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
38
class
SimTK_SIMBODY_EXPORT
MobilizedBody
::
Planar
:
public
MobilizedBody
{
39
public
:
42
Planar
() {}
43
49
Planar
(
MobilizedBody
& parent,
const
Transform
& X_PF,
50
const
Body
& bodyInfo,
const
Transform
& X_BM,
Direction
=Forward);
51
54
Planar
(
MobilizedBody
& parent,
const
Body
& bodyInfo,
Direction
=Forward);
55
56
Planar
&
addBodyDecoration
(
const
Transform
& X_BD,
const
DecorativeGeometry
& g) {
57
(void)
MobilizedBody::addBodyDecoration
(X_BD,g);
return
*
this
;
58
}
59
Planar
&
addOutboardDecoration
(
const
Transform
& X_MD,
const
DecorativeGeometry
& g) {
60
(void)
MobilizedBody::addOutboardDecoration
(X_MD,g);
return
*
this
;
61
}
62
Planar
&
addInboardDecoration
(
const
Transform
& X_FD,
const
DecorativeGeometry
& g) {
63
(void)
MobilizedBody::addInboardDecoration
(X_FD,g);
return
*
this
;
64
}
65
66
Planar
&
setDefaultInboardFrame
(
const
Transform
& X_PF) {
67
(void)
MobilizedBody::setDefaultInboardFrame
(X_PF);
return
*
this
;
68
}
69
70
Planar
&
setDefaultOutboardFrame
(
const
Transform
& X_BM) {
71
(void)
MobilizedBody::setDefaultOutboardFrame
(X_BM);
return
*
this
;
72
}
73
74
// Friendly, mobilizer-specific access to coordinates and speeds.
75
Planar
&
setDefaultAngle
(
Real
a) {
76
Vec3
q = getDefaultQ(); q[0] = a; setDefaultQ(q);
77
return
*
this
;
78
}
79
Planar
&
setDefaultTranslation
(
const
Vec2
& r) {
80
Vec3
q = getDefaultQ(); q.
updSubVec
<2>(1) = r; setDefaultQ(q);
81
return
*
this
;
82
}
83
84
Real
getDefaultAngle
()
const
{
return
getDefaultQ()[0];}
85
const
Vec2
&
getDefaultTranslation
()
const
{
return
getDefaultQ().
getSubVec
<2>(1);}
86
87
void
setAngle
(
State
& s,
Real
a) {setOneQ(s,0,a);}
88
void
setTranslation
(
State
& s,
const
Vec2
& r) {setOneQ(s,1,r[0]); setOneQ(s,2,r[1]);}
89
90
Real
getAngle
(
const
State
& s)
const
{
return
getQ(s)[0];}
91
const
Vec2
&
getTranslation
(
const
State
& s)
const
{
return
getQ(s).
getSubVec
<2>(1);}
92
93
// Generic default state Topology methods.
94
const
Vec3
& getDefaultQ()
const
;
95
Planar
& setDefaultQ(
const
Vec3
& q);
96
97
const
Vec3
& getQ(
const
State
&)
const
;
98
const
Vec3
& getQDot(
const
State
&)
const
;
99
const
Vec3
& getQDotDot(
const
State
&)
const
;
100
const
Vec3
& getU(
const
State
&)
const
;
101
const
Vec3
& getUDot(
const
State
&)
const
;
102
103
void
setQ(
State
&,
const
Vec3
&)
const
;
104
void
setU(
State
&,
const
Vec3
&)
const
;
105
106
const
Vec3
& getMyPartQ(
const
State
&,
const
Vector
& qlike)
const
;
107
const
Vec3
& getMyPartU(
const
State
&,
const
Vector
& ulike)
const
;
108
109
Vec3
& updMyPartQ(
const
State
&,
Vector
& qlike)
const
;
110
Vec3
& updMyPartU(
const
State
&,
Vector
& ulike)
const
;
111
// Don't let doxygen see this
113
SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS
(
Planar
, PlanarImpl,
MobilizedBody
);
115
};
116
117
}
// namespace SimTK
118
119
#endif // SimTK_SIMBODY_MOBILIZED_BODY_PLANAR_H_
120
121
122
Simbody
include
simbody
internal
MobilizedBody_Planar.h
Generated on Tue Dec 2 2014 13:13:27 for Simbody by
1.8.1.2