|
| GeneralContactSubsystem () |
|
| GeneralContactSubsystem (MultibodySystem &) |
|
ContactSetIndex | createContactSet () |
| Create a new contact set. More...
|
|
int | getNumContactSets () const |
| Get the total number of contact sets that have been created. More...
|
|
void | addBody (ContactSetIndex index, const MobilizedBody &body, const ContactGeometry &geom, Transform transform) |
| Add a body to a contact set. More...
|
|
int | getNumBodies (ContactSetIndex set) const |
| Get the number of bodies in a contact set. More...
|
|
const MobilizedBody & | getBody (ContactSetIndex set, ContactSurfaceIndex index) const |
| Get the MobilizedBody in whose reference frame a body is defined. More...
|
|
const ContactGeometry & | getBodyGeometry (ContactSetIndex set, ContactSurfaceIndex index) const |
| Get the ContactGeometry which defines the shape of a body. More...
|
|
ContactGeometry & | updBodyGeometry (ContactSetIndex set, ContactSurfaceIndex index) |
| Get a mutable reference to the ContactGeometry which defines the shape of a body. More...
|
|
const Transform & | getBodyTransform (ContactSetIndex set, ContactSurfaceIndex index) const |
| Get the location and orientation of a body. More...
|
|
Transform & | updBodyTransform (ContactSetIndex set, ContactSurfaceIndex index) |
| Get a mutable reference to the location and orientation of a body. More...
|
|
const Array_< Contact > & | getContacts (const State &state, ContactSetIndex set) const |
| Get a list of all contacts between bodies in a contact set. More...
|
|
| SimTK_PIMPL_DOWNCAST (GeneralContactSubsystem, Subsystem) |
|
| Subsystem () |
| Default constructor creates and empty handle with a null Subsystem::Guts pointer. More...
|
|
| Subsystem (const Subsystem &) |
| Copy constructor clones the Subsystem::Guts object if there is one and makes this the owner handle of the new clone. More...
|
|
Subsystem & | operator= (const Subsystem &) |
| Copy assignment deletes the Subsystem::Guts object if there is one and then behaves like the copy constructor. More...
|
|
| ~Subsystem () |
| Destructor deletes the referenced Subsystem::Guts object if this is the owner handle of that object, otherwise does nothing. More...
|
|
QIndex | allocateQ (State &s, const Vector &qInit) const |
|
UIndex | allocateU (State &s, const Vector &uInit) const |
|
ZIndex | allocateZ (State &s, const Vector &zInit) const |
|
DiscreteVariableIndex | allocateDiscreteVariable (State &s, Stage g, AbstractValue *v) const |
|
DiscreteVariableIndex | allocateAutoUpdateDiscreteVariable (State &s, Stage invalidates, AbstractValue *v, Stage updateDependsOn) const |
|
CacheEntryIndex | allocateCacheEntry (const State &s, Stage dependsOn, Stage computedBy, AbstractValue *v) const |
|
CacheEntryIndex | allocateCacheEntry (const State &state, Stage g, AbstractValue *v) const |
|
CacheEntryIndex | allocateLazyCacheEntry (const State &state, Stage earliest, AbstractValue *v) const |
|
QErrIndex | allocateQErr (const State &s, int nqerr) const |
|
UErrIndex | allocateUErr (const State &s, int nuerr) const |
|
UDotErrIndex | allocateUDotErr (const State &s, int nudoterr) const |
|
EventTriggerByStageIndex | allocateEventTriggersByStage (const State &s, Stage g, int ntriggers) const |
|
const Vector & | getQ (const State &s) const |
|
const Vector & | getU (const State &s) const |
|
const Vector & | getZ (const State &s) const |
|
const Vector & | getUWeights (const State &s) const |
|
const Vector & | getZWeights (const State &s) const |
|
Vector & | updQ (State &s) const |
|
Vector & | updU (State &s) const |
|
Vector & | updZ (State &s) const |
|
const Vector & | getQDot (const State &s) const |
|
const Vector & | getUDot (const State &s) const |
|
const Vector & | getZDot (const State &s) const |
|
const Vector & | getQDotDot (const State &s) const |
|
Vector & | updQDot (const State &s) const |
|
Vector & | updUDot (const State &s) const |
|
Vector & | updZDot (const State &s) const |
|
Vector & | updQDotDot (const State &s) const |
|
const Vector & | getQErr (const State &s) const |
|
const Vector & | getUErr (const State &s) const |
|
const Vector & | getQErrWeights (const State &s) const |
|
const Vector & | getUErrWeights (const State &s) const |
|
const Vector & | getUDotErr (const State &s) const |
|
const Vector & | getMultipliers (const State &s) const |
|
const Vector & | getEventTriggersByStage (const State &s, Stage g) const |
|
Vector & | updQErr (const State &s) const |
|
Vector & | updUErr (const State &s) const |
|
Vector & | updUDotErr (const State &s) const |
|
Vector & | updMultipliers (const State &s) const |
|
Vector & | updEventTriggersByStage (const State &s, Stage g) const |
|
SystemQIndex | getQStart (const State &s) const |
|
int | getNQ (const State &s) const |
|
SystemUIndex | getUStart (const State &s) const |
|
int | getNU (const State &s) const |
|
SystemZIndex | getZStart (const State &s) const |
|
int | getNZ (const State &s) const |
|
SystemQErrIndex | getQErrStart (const State &s) const |
|
int | getNQErr (const State &s) const |
|
SystemUErrIndex | getUErrStart (const State &s) const |
|
int | getNUErr (const State &s) const |
|
SystemUDotErrIndex | getUDotErrStart (const State &s) const |
|
int | getNUDotErr (const State &s) const |
|
SystemMultiplierIndex | getMultipliersStart (const State &s) const |
|
int | getNMultipliers (const State &s) const |
|
SystemEventTriggerByStageIndex | getEventTriggerStartByStage (const State &s, Stage g) const |
|
int | getNEventTriggersByStage (const State &s, Stage g) const |
|
void | setQ (State &s, const Vector &q) const |
|
void | setU (State &s, const Vector &u) const |
|
void | setZ (State &s, const Vector &z) const |
|
Stage | getStage (const State &s) const |
|
void | advanceToStage (const State &s, Stage g) const |
|
const AbstractValue & | getDiscreteVariable (const State &s, DiscreteVariableIndex index) const |
|
AbstractValue & | updDiscreteVariable (State &s, DiscreteVariableIndex index) const |
|
const AbstractValue & | getCacheEntry (const State &s, CacheEntryIndex index) const |
|
AbstractValue & | updCacheEntry (const State &s, CacheEntryIndex index) const |
|
Real | getDiscreteVarLastUpdateTime (const State &s, DiscreteVariableIndex dx) const |
|
CacheEntryIndex | getDiscreteVarUpdateIndex (const State &s, DiscreteVariableIndex dx) const |
|
const AbstractValue & | getDiscreteVarUpdateValue (const State &s, DiscreteVariableIndex dx) const |
|
AbstractValue & | updDiscreteVarUpdateValue (const State &s, DiscreteVariableIndex dx) const |
|
bool | isDiscreteVarUpdateValueRealized (const State &s, DiscreteVariableIndex dx) const |
|
void | markDiscreteVarUpdateValueRealized (const State &s, DiscreteVariableIndex dx) const |
|
bool | isCacheValueRealized (const State &s, CacheEntryIndex cx) const |
|
void | markCacheValueRealized (const State &s, CacheEntryIndex cx) const |
|
void | markCacheValueNotRealized (const State &s, CacheEntryIndex cx) const |
|
const String & | getName () const |
| Obtain the Subsystem name if one was given on construction of the concrete Subsystem. More...
|
|
const String & | getVersion () const |
| Obtain the Subsystem version string if one was given on construction. More...
|
|
bool | isInSystem () const |
| Return true if this Subsystem is contained in a System. More...
|
|
bool | isInSameSystem (const Subsystem &otherSubsystem) const |
| Return true if this Subsystem is contained in the same System as contains the given otherSubsystem. More...
|
|
const System & | getSystem () const |
| Return a const reference to the System that contains this Subsystem. More...
|
|
System & | updSystem () |
| Return a writable reference to the System that contains this Subsystem. More...
|
|
void | setSystem (System &system, SubsystemIndex subx) |
| Inform this Subsystem of the System that contains it, as well as the SubsystemIndex which the System has assigned to it. More...
|
|
SubsystemIndex | getMySubsystemIndex () const |
| Return the SubsystemIndex within the containing System. More...
|
|
bool | isEmptyHandle () const |
| Return true if this handle has a null Subsystem::Guts pointer. More...
|
|
bool | isSameSubsystem (const Subsystem &otherSubsystem) const |
| Determine if this Subsystem handle refers to the same Subsystem::Guts object as handle otherSubsystem. More...
|
|
bool | isOwnerHandle () const |
| Is this Subsystem handle the owner of the Subsystem::Guts object it points to? This is true if the handle is empty or if its Guts object points back to this handle. More...
|
|
bool | subsystemTopologyHasBeenRealized () const |
| Returns true if this Subsystem's realizeTopology() method has been called since the last topological change or call to invalidateSubsystemTopologyCache(). More...
|
|
void | invalidateSubsystemTopologyCache () const |
| Always call this method when a topological change is made to this Subsystem to indicate that any Stage::Topology cache values may need recomputation. More...
|
|
MeasureIndex | adoptMeasure (AbstractMeasure &) |
| Obtain the Subsystem name if one was given on construction of the concrete Subsystem. More...
|
|
AbstractMeasure | getMeasure (MeasureIndex) const |
| Obtain the Subsystem name if one was given on construction of the concrete Subsystem. More...
|
|
template<class T > |
Measure_< T > | getMeasure_ (MeasureIndex mx) const |
| Obtain the Subsystem name if one was given on construction of the concrete Subsystem. More...
|
|
const Subsystem::Guts & | getSubsystemGuts () const |
| Obtain the Subsystem name if one was given on construction of the concrete Subsystem. More...
|
|
Subsystem::Guts & | updSubsystemGuts () |
| Obtain the Subsystem name if one was given on construction of the concrete Subsystem. More...
|
|
void | adoptSubsystemGuts (Subsystem::Guts *g) |
| Obtain the Subsystem name if one was given on construction of the concrete Subsystem. More...
|
|
| Subsystem (Subsystem::Guts *g) |
| Obtain the Subsystem name if one was given on construction of the concrete Subsystem. More...
|
|
bool | hasGuts () const |
| Obtain the Subsystem name if one was given on construction of the concrete Subsystem. More...
|
|
This class performs collision detection for use in contact modeling.
It manages sets of bodies that can potentially interact with each other. At each time step, it identifies all the contacts between them. It does not directly affect the behavior of the system in any way. Instead, it simply provides a service that can be used by other classes to implement forces, events, contraints, etc. that are based on contacts between bodies.
To use this class, first create a "contact set" by calling createContactSet(). A contact set is a group of bodies which can interact with each other. If you create multiple contact sets, the bodies within each one will be checked for contacts with each other, but bodies in different sets will not interact.
Next, add bodies to the contact set. Each one is represented by a ContactGeometry object that describes its shape, the MoblizedBody it is attached to, and a Transform giving the location of the geometry in the MobilizedBody's reference frame.
Finally, call getContacts() to get a list of all contacts which exist between bodies in a contact set. Each Contact specifies two bodies that overlap, along with a description of the contact point, such as its location and normal vector.