1 #ifndef SimTK_SIMBODY_FORCE_H_
2 #define SimTK_SIMBODY_FORCE_H_
33 class SimbodyMatterSubsystem;
34 class GeneralForceSubsystem;
42 #ifndef SimTK_SIMBODY_DEFINING_FORCE
43 extern template class PIMPLHandle<Force, ForceImpl, true>;
62 void disable(
State&)
const;
66 void enable(
State&)
const;
70 bool isDisabled(
const State&)
const;
76 void setDisabledByDefault(
bool shouldBeDisabled);
80 bool isDisabledByDefault()
const;
128 void calcForceContribution(
const State& state,
131 Vector& mobilityForces)
const;
143 Real calcPotentialEnergyContribution(
const State& state)
const;
167 class TwoPointLinearSpring;
168 class TwoPointLinearDamper;
169 class TwoPointConstantForce;
170 class MobilityLinearSpring;
171 class MobilityLinearDamper;
172 class MobilityConstantForce;
173 class MobilityLinearStop;
174 class MobilityDiscreteForce;
175 class DiscreteForces;
178 class ConstantTorque;
181 class UniformGravity;
185 class TwoPointLinearSpringImpl;
186 class TwoPointLinearDamperImpl;
187 class TwoPointConstantForceImpl;
188 class MobilityLinearSpringImpl;
189 class MobilityLinearDamperImpl;
190 class MobilityConstantForceImpl;
191 class MobilityLinearStopImpl;
192 class MobilityDiscreteForceImpl;
193 class DiscreteForcesImpl;
194 class LinearBushingImpl;
195 class ConstantForceImpl;
196 class ConstantTorqueImpl;
197 class GlobalDamperImpl;
198 class ThermostatImpl;
199 class UniformGravityImpl;
383 Vec3 getGravity()
const;
384 void setGravity(
const Vec3& g);
385 Real getZeroHeight()
const;
386 void setZeroHeight(
Real height);
392 #endif // SimTK_SIMBODY_FORCE_H_
This is the base class from which all Force element handle classes derive.
Definition: Force.h:50
A constant force applied to a body station.
Definition: Force.h:313
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition: Assembler.h:37
A force which resists changes in the distance between two points, acting along the line between those...
Definition: Force.h:254
TwoPointLinearDamper()
Default constructor creates an empty handle.
Definition: Force.h:269
Every Simbody header and source file should include this header before any other Simbody header...
SimTK_Real Real
This is the default compiled-in floating point type for SimTK, either float or double.
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:577
This object is intended to contain all state information for a SimTK::System, except topological info...
Definition: State.h:276
GlobalDamper()
Default constructor creates an empty handle.
Definition: Force.h:359
Includes internal headers providing declarations for the basic SimTK Core classes, including Simmatrix.
ConstantTorque()
Default constructor creates an empty handle.
Definition: Force.h:335
This type represents the index of a Force element within its subsystem.
#define SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS(DERIVED, DERIVED_IMPL, PARENT)
Definition: PrivateImplementation.h:343
Force()
Default constructor for Force handle base class does nothing.
Definition: Force.h:152
A constant force f (a signed scalar) which acts along the line between two points, specified as a station on each of two bodies.
Definition: Force.h:285
TwoPointLinearSpring()
Default constructor creates an empty handle.
Definition: Force.h:237
ConstantForce()
Default constructor creates an empty handle.
Definition: Force.h:318
A constant torque to a body.
Definition: Force.h:330
This is the vector class intended to appear in user code for large, variable size column vectors...
Definition: BigMatrix.h:171
Force(ForceImpl *r)
Use this in a derived Force handle class constructor to supply the concrete implementation object to ...
Definition: Force.h:206
This is a concrete subsystem which can apply arbitrary forces to a MultibodySystem.
Definition: GeneralForceSubsystem.h:47
#define SimTK_SIMBODY_EXPORT
Definition: Simbody/include/simbody/internal/common.h:72
A MobilizedBody is Simbody's fundamental body-and-joint object used to parameterize a system's motion...
Definition: MobilizedBody.h:167
TwoPointConstantForce()
Default constructor creates an empty handle.
Definition: Force.h:300
A linear spring between two points, specified as a station on each of two bodies. ...
Definition: Force.h:221
This subsystem contains the bodies ("matter") in the multibody system, the mobilizers (joints) that d...
Definition: SimbodyMatterSubsystem.h:133
A general energy "drain" on the system.
Definition: Force.h:354