1 #ifndef SimTK_SIMBODY_GENERAL_FORCE_ELEMENTS_H_
2 #define SimTK_SIMBODY_GENERAL_FORCE_ELEMENTS_H_
34 class MultibodySystem;
35 class SimbodyMatterSubsystem;
155 int getNForces()
const {
return getNumForces();}
157 class GeneralForceSubsystemRep& updRep();
158 const GeneralForceSubsystemRep& getRep()
const;
#define SimTK_PIMPL_DOWNCAST(Derived, Parent)
Similar to the above but for private implementation abstract classes, that is, abstract class hierarc...
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:594
Every Simbody header and source file should include this header before any other Simbody header.
#define SimTK_SIMBODY_EXPORT
Definition: Simbody/include/simbody/internal/common.h:68
The Array_<T> container class is a plug-compatible replacement for the C++ standard template library ...
Definition: Array.h:1520
This type represents the index of a Force element within its subsystem.
This is logically an abstract class, more specialized than "Subsystem" but not yet concrete.
Definition: ForceSubsystem.h:36
This is the base class from which all Force element handle classes derive.
Definition: Force.h:50
This is a concrete subsystem which can apply arbitrary forces to a MultibodySystem.
Definition: GeneralForceSubsystem.h:47
const MultibodySystem & getMultibodySystem() const
Every Subsystem is owned by a System; a GeneralForceSubsystem expects to be owned by a MultibodySyste...
void setNumberOfThreads(unsigned numThreads)
Set the number of threads that the GeneralForceSubsystem can use to calculate computationally expensi...
int getNumberOfThreads() const
Returns the number of threads that the GeneralForceSubsystem can use to calculate computationally exp...
int getNumForces() const
Get the number of force elements which have been added to this Subsystem.
void calcForceContributionsSum(const State &s, const Array_< ForceIndex > &forceIndexes, Vector_< SpatialVec > &bodyForces, Vector &mobilityForces) const
Calculate the sum of forces that would be applied by the force elements if the given state were reali...
GeneralForceSubsystem(MultibodySystem &)
bool isForceDisabled(const State &state, ForceIndex index) const
Find out whether a particular force element contained in this subsystem is currently disabled in the ...
Force & updForce(ForceIndex index)
Get a writable reference to a force element by index.
void setForceIsDisabled(State &state, ForceIndex index, bool shouldBeDisabled) const
Disable or enable a particular force element contained in this subsystem.
const Force & getForce(ForceIndex index) const
Get a const reference to a force element by index.
ForceIndex adoptForce(Force &force)
Attach a new force to this subsystem.
The job of the MultibodySystem class is to coordinate the activities of various subsystems which can ...
Definition: MultibodySystem.h:48
This object is intended to contain all state information for a SimTK::System, except topological info...
Definition: State.h:280
This is the vector class intended to appear in user code for large, variable size column vectors.
Definition: Vector_.h:50
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition: Assembler.h:37