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
Force_DiscreteForces.h
Go to the documentation of this file.
1
#ifndef SimTK_SIMBODY_FORCE_DISCRETE_FORCES_H_
2
#define SimTK_SIMBODY_FORCE_DISCRETE_FORCES_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) 2013 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
27
#include "
SimTKcommon.h
"
28
#include "
simbody/internal/Force.h
"
29
35
namespace
SimTK {
36
41
class
SimTK_SIMBODY_EXPORT
Force
::
DiscreteForces
:
public
Force
{
42
public
:
49
DiscreteForces
(
GeneralForceSubsystem
& forces,
50
const
SimbodyMatterSubsystem
& matter);
51
52
54
DiscreteForces
() {}
55
58
void
clearAllForces
(
State
& state)
const
{
59
clearAllMobilityForces(state);
60
clearAllBodyForces(state);
61
}
62
65
void
clearAllMobilityForces(
State
& state)
const
;
68
void
clearAllBodyForces(
State
& state)
const
;
69
82
void
setOneMobilityForce(
State
& state,
const
MobilizedBody
& mobod,
83
MobilizerUIndex
whichU,
Real
force)
const
;
84
99
void
setOneBodyForce(
State
& state,
const
MobilizedBody
& mobod,
100
const
SpatialVec
& spatialForceInG)
const
;
101
120
void
addForceToBodyPoint(
State
& state,
const
MobilizedBody
& mobod,
121
const
Vec3
& pointInB,
122
const
Vec3
& forceInG)
const
;
123
132
void
setAllMobilityForces(
State
& state,
const
Vector
& f)
const
;
133
144
void
setAllBodyForces(
State
& state,
145
const
Vector_<SpatialVec>
& bodyForcesInG)
const
;
146
151
Real
getOneMobilityForce(
const
State
& state,
const
MobilizedBody
& mobod,
152
MobilizerUIndex
whichU)
const
;
153
158
SpatialVec
getOneBodyForce(
const
State
& state,
159
const
MobilizedBody
& mobod)
const
;
160
166
const
Vector
& getAllMobilityForces(
const
State
& state)
const
;
172
const
Vector_<SpatialVec>
& getAllBodyForces(
const
State
& state)
const
;
173
175
SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS
(
DiscreteForces
,
176
DiscreteForcesImpl,
Force
);
178
};
179
180
}
// namespace SimTK
181
182
#endif // SimTK_SIMBODY_FORCE_DISCRETE_FORCES_H_
Simbody
include
simbody
internal
Force_DiscreteForces.h
Generated on Tue Dec 2 2014 13:13:23 for Simbody by
1.8.1.2