Simbody 3.7
Loading...
Searching...
No Matches
MobilizedBody_Translation.h
Go to the documentation of this file.
1#ifndef SimTK_SIMBODY_MOBILIZED_BODY_TRANSLATION_H_
2#define SimTK_SIMBODY_MOBILIZED_BODY_TRANSLATION_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
31
32namespace SimTK {
33
39public:
43
50 Translation(MobilizedBody& parent, const Transform& X_PF,
51 const Body& bodyInfo, const Transform& X_BM,
52 Direction=Forward);
53
56 Translation(MobilizedBody& parent, const Body& bodyInfo, Direction=Forward);
57
59 (void)MobilizedBody::addBodyDecoration(X_BD,g); return *this;
60 }
62 (void)MobilizedBody::addOutboardDecoration(X_MD,g); return *this;
63 }
65 (void)MobilizedBody::addInboardDecoration(X_FD,g); return *this;
66 }
67
69 (void)MobilizedBody::setDefaultInboardFrame(X_PF); return *this;
70 }
71
73 (void)MobilizedBody::setDefaultOutboardFrame(X_BM); return *this;
74 }
75
81 return setDefaultQ(p_FM);
82 }
83
85 const Vec3& getDefaultTranslation() const {
86 return getDefaultQ();
87 }
88
92 void setTranslation(State& s, const Vec3& p_FM) const {
93 setQ(s,p_FM);
94 }
95
99 const Vec3& getTranslation(const State& s) const {
100 return getQ(s);
101 }
102
106 void setVelocity(State& s, const Vec3& v_FM) const {
107 setU(s,v_FM);
108 }
109
113 const Vec3& getVelocity(const State& s) const {
114 return getU(s);
115 }
116
121 const Vec3& getAcceleration(const State& s) const {
122 return getUDot(s);
123 }
124
125 // These methods were misnamed and created some confusion with similar
126 // methods in the MobilizedBody base class. See issue #604.
127
128 DEPRECATED_14("use setTranslation() instead")
129 void setMobilizerTranslation(State& s, const Vec3& p_FM) const {
130 setTranslation(s,p_FM);
131 }
132
133 DEPRECATED_14("use getTranslation() instead")
134 const Vec3& getMobilizerTranslation(const State& s) const {
135 return getTranslation(s);
136 }
137
138 DEPRECATED_14("use setVelocity() instead")
139 void setMobilizerVelocity(State& s, const Vec3& v_FM) const {
140 setVelocity(s,v_FM);
141 }
142
143 DEPRECATED_14("use getVelocity() instead")
144 const Vec3& getMobilizerVelocity(const State& s) const {
145 return getVelocity(s);
146 }
147
148 DEPRECATED_14("use getAcceleration() instead")
149 const Vec3& getMobilizerAcceleration(const State& s) const {
150 return getAcceleration(s);
151 }
152
153 // Generic default state Topology methods.
154 const Vec3& getDefaultQ() const;
156
157 const Vec3& getQ(const State&) const;
158 const Vec3& getQDot(const State&) const;
159 const Vec3& getQDotDot(const State&) const;
160 const Vec3& getU(const State&) const;
161 const Vec3& getUDot(const State&) const;
162
163 void setQ(State&, const Vec3&) const;
164 void setU(State&, const Vec3&) const;
165
166 const Vec3& getMyPartQ(const State&, const Vector& qlike) const;
167 const Vec3& getMyPartU(const State&, const Vector& ulike) const;
168
169 Vec3& updMyPartQ(const State&, Vector& qlike) const;
170 Vec3& updMyPartU(const State&, Vector& ulike) const;
171
// hide from Doxygen
176};
177
178} // namespace SimTK
179
180#endif // SimTK_SIMBODY_MOBILIZED_BODY_TRANSLATION_H_
181
182
183
This defines the MobilizedBody class, which associates a new body (the "child", "outboard",...
#define SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS(DERIVED, DERIVED_IMPL, PARENT)
Definition PrivateImplementation.h:343
#define DEPRECATED_14(MSG)
Definition SimTKcommon/include/SimTKcommon/internal/common.h:289
#define SimTK_SIMBODY_EXPORT
Definition Simbody/include/simbody/internal/common.h:68
The Body class represents a reference frame that can be used to describe mass properties and geometry...
Definition Body.h:55
This is the client-side interface to an implementation-independent representation of "Decorations" su...
Definition DecorativeGeometry.h:86
Three translational mobilities describing the Cartesian motion of a point.
Definition MobilizedBody_Translation.h:38
Translation & setDefaultInboardFrame(const Transform &X_PF)
Definition MobilizedBody_Translation.h:68
const Vec3 & getU(const State &) const
const Vec3 & getDefaultQ() const
const Vec3 & getVelocity(const State &s) const
Get the current value of the u's for this mobilizer from the given State.
Definition MobilizedBody_Translation.h:113
const Vec3 & getMyPartU(const State &, const Vector &ulike) const
Translation(MobilizedBody &parent, const Body &bodyInfo, Direction=Forward)
Abbreviated constructor you can use if the mobilizer frames are coincident with the parent and child ...
Translation & setDefaultQ(const Vec3 &q)
const Vec3 & getQ(const State &) const
const Vec3 & getQDotDot(const State &) const
void setTranslation(State &s, const Vec3 &p_FM) const
Set the current value of q's in the given State.
Definition MobilizedBody_Translation.h:92
const Vec3 & getAcceleration(const State &s) const
Get the current value of the udot's for this mobilizer from the given State, which must be realized t...
Definition MobilizedBody_Translation.h:121
Translation & addInboardDecoration(const Transform &X_FD, const DecorativeGeometry &g)
Definition MobilizedBody_Translation.h:64
const Vec3 & getDefaultTranslation() const
Get the topological default values for the initial q's.
Definition MobilizedBody_Translation.h:85
Translation & setDefaultOutboardFrame(const Transform &X_BM)
Definition MobilizedBody_Translation.h:72
Vec3 & updMyPartU(const State &, Vector &ulike) const
Translation()
Default constructor provides an empty handle that can be assigned to reference any MobilizedBody::Tra...
Definition MobilizedBody_Translation.h:42
Translation & setDefaultTranslation(const Vec3 &p_FM)
This is just a nicer name for setting this mobilizer's topological default generalized coordinates q,...
Definition MobilizedBody_Translation.h:80
const Vec3 & getMyPartQ(const State &, const Vector &qlike) const
const Vec3 & getTranslation(const State &s) const
Get the current value of the q's for this mobilizer from the given State.
Definition MobilizedBody_Translation.h:99
Translation & addBodyDecoration(const Transform &X_BD, const DecorativeGeometry &g)
Definition MobilizedBody_Translation.h:58
Translation & addOutboardDecoration(const Transform &X_MD, const DecorativeGeometry &g)
Definition MobilizedBody_Translation.h:61
const Vec3 & getQDot(const State &) const
void setU(State &, const Vec3 &) const
const Vec3 & getUDot(const State &) const
void setQ(State &, const Vec3 &) const
Vec3 & updMyPartQ(const State &, Vector &qlike) const
Translation(MobilizedBody &parent, const Transform &X_PF, const Body &bodyInfo, const Transform &X_BM, Direction=Forward)
Create a Translation mobilizer between an existing parent (inboard) body P and a new child (outboard)...
void setVelocity(State &s, const Vec3 &v_FM) const
Set the current value of u's in the given State.
Definition MobilizedBody_Translation.h:106
A MobilizedBody is Simbody's fundamental body-and-joint object used to parameterize a system's motion...
Definition MobilizedBody.h:169
Direction
Constructors can take an argument of this type to indicate that the mobilizer is being defined in the...
Definition MobilizedBody.h:181
This object is intended to contain all state information for a SimTK::System, except topological info...
Definition State.h:280
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition Assembler.h:37