1 #ifndef SimTK_SimTKCOMMON_SUBSYSTEM_GUTS_H_     2 #define SimTK_SimTKCOMMON_SUBSYSTEM_GUTS_H_    36 class DecorativeGeometry;
    84 {   
return s.
allocateQ(getMySubsystemIndex(), qInit); }
    86 {   
return s.
allocateU(getMySubsystemIndex(), uInit); }
    88 {   
return s.
allocateZ(getMySubsystemIndex(), zInit); }
    96                (getMySubsystemIndex(),invalidates,v,updateDependsOn); }
   100                (getMySubsystemIndex(), dependsOn, computedBy, v); }
   104 {   
return allocateCacheEntry(state, g, g, v); }
   110 {   
return s.
allocateQErr(getMySubsystemIndex(), nqerr); }
   112 {   
return s.
allocateUErr(getMySubsystemIndex(), nuerr); }
   120 {   
return s.
getQ(getMySubsystemIndex()); }
   122 {   
return s.
getU(getMySubsystemIndex()); }
   124 {   
return s.
getZ(getMySubsystemIndex()); }
   135 {   
return s.
getQDot(getMySubsystemIndex()); }
   137 {   
return s.
getUDot(getMySubsystemIndex()); }
   139 {   
return s.
getZDot(getMySubsystemIndex()); }
   141 {   
return s.
getQDotDot(getMySubsystemIndex()); }
   144 {   
return s.
updQDot(getMySubsystemIndex()); }
   146 {   
return s.
updUDot(getMySubsystemIndex()); }
   148 {   
return s.
updZDot(getMySubsystemIndex()); }
   150 {   
return s.
updQDotDot(getMySubsystemIndex()); }
   153 {   
return s.
getQErr(getMySubsystemIndex()); }
   155 {   
return s.
getUErr(getMySubsystemIndex()); }
   162 {   
return s.
getUDotErr(getMySubsystemIndex()); }
   169 {   
return s.
updQErr(getMySubsystemIndex()); }
   171 {   
return s.
updUErr(getMySubsystemIndex()); }
   173 {   
return s.
updUDotErr(getMySubsystemIndex()); }
   180 {   
return s.
getQStart(getMySubsystemIndex()); }
   182 {   
return s.
getNQ(getMySubsystemIndex()); }
   185 {   
return s.
getUStart(getMySubsystemIndex()); }
   187 {   
return s.
getNU(getMySubsystemIndex()); }
   190 {   
return s.
getZStart(getMySubsystemIndex()); }
   192 {   
return s.
getNZ(getMySubsystemIndex()); }
   197 {   
return s.
getNQErr(getMySubsystemIndex()); }
   202 {   
return s.
getNUErr(getMySubsystemIndex()); }
   259 bool isDiscreteVarUpdateValueRealized
   262 void markDiscreteVarUpdateValueRealized
   293                  "Subsystem::Guts::getMeasure()");
   298 bool isInSameSystem(
const Subsystem& otherSubsystem) 
const;
   312     m_mySubsystemIndex = id;
   315     SimTK_ASSERT(isInSystem(), 
"Subsystem::getMySubsystemIndex()");
   316     return m_mySubsystemIndex;
   324 {   
return m_subsystemTopologyRealized; }
   334 void invalidateSubsystemTopologyCache() 
const;
   349 void realizeSubsystemTopology    (
State&) 
const;
   350 void realizeSubsystemModel       (
State&) 
const;
   351 void realizeSubsystemInstance    (
const State&) 
const;
   352 void realizeSubsystemTime        (
const State&) 
const;
   353 void realizeSubsystemPosition    (
const State&) 
const;
   354 void realizeSubsystemVelocity    (
const State&) 
const;
   355 void realizeSubsystemDynamics    (
const State&) 
const;
   356 void realizeSubsystemAcceleration(
const State&) 
const;
   357 void realizeSubsystemReport      (
const State&) 
const;
   364 void calcDecorativeGeometryAndAppend
   367 void createScheduledEvent(
const State& state, 
EventId& eventId) 
const;
   368 void createTriggeredEvent(
const State& state, 
EventId& eventId, 
   376 void calcEventTriggerInfo
   378 void calcTimeOfNextScheduledEvent
   380     bool includeCurrentTime) 
const;
   381 void calcTimeOfNextScheduledReport
   383     bool includeCurrentTime) 
const;
   420 virtual int calcDecorativeGeometryAndAppendImpl
   423 virtual void calcEventTriggerInfoImpl
   425 virtual void calcTimeOfNextScheduledEventImpl
   427     bool includeCurrentTime) 
const {}
   428 virtual void calcTimeOfNextScheduledReportImpl
   430     bool includeCurrentTime) 
const {}
   431 virtual void handleEventsImpl
   435 virtual void reportEventsImpl
   443     SimTK_ASSERT(m_myHandle, 
"Subsystem::getOwnerSubsystemHandle()");
   449     SimTK_ASSERT(m_myHandle, 
"Subsystem::getOwnerSubsystemHandle()");
   472 String          m_subsystemVersion;
   484 mutable bool    m_subsystemTopologyRealized;
   494 {   
return getSubsystemGuts().getMySubsystemIndex(); }
   500     return getSubsystemGuts().subsystemTopologyHasBeenRealized();
   504     getSubsystemGuts().invalidateSubsystemTopologyCache(); 
   508 {   
return updSubsystemGuts().adoptMeasure(m); }
   510 {   
return getSubsystemGuts().getMeasure(mx); }
   514 {   
return getSubsystemGuts().isInSystem(); }
   516 {   
return getSubsystemGuts().isInSameSystem(otherSubsystem); }
   519 {   
return getSubsystemGuts().getSystem(); }
   521 {   
return updSubsystemGuts().updSystem(); }
   523 {   updSubsystemGuts().setSystem(sys,
id); }
   526 {   
return guts==0 || &guts->getOwnerSubsystemHandle()==
this; }
   530 #endif // SimTK_SimTKCOMMON_SUBSYSTEM_GUTS_H_ const Vector & getZWeights(SubsystemIndex) const 
 
AbstractValue & updDiscreteVarUpdateValue(SubsystemIndex, DiscreteVariableIndex) const 
For an auto-updating discrete variable, return a writable reference to the value of its associated up...
 
Vector & updUErr(SubsystemIndex) const 
 
bool isInSystem() const 
Return true if this Subsystem is contained in a System. 
Definition: SubsystemGuts.h:513
 
A Subsystem is expected to be part of a larger System and to have interdependencies with other subsys...
Definition: Subsystem.h:55
 
const Vector & getQDotDot(SubsystemIndex) const 
 
Vector & updQ(SubsystemIndex)
 
Vector & updQDot(const State &s) const 
Definition: SubsystemGuts.h:143
 
AbstractMeasure getMeasure(MeasureIndex) const 
Obtain the Subsystem name if one was given on construction of the concrete Subsystem. 
Definition: SubsystemGuts.h:509
 
const String & getVersion() const 
Obtain the Subsystem version string if one was given on construction. 
Definition: SubsystemGuts.h:497
 
SystemYErrIndex getUErrStart() const 
Returns the yErr index at which the uErr's begin. Callable at Instance stage. 
 
#define SimTK_SimTKCOMMON_EXPORT
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:218
 
const Vector & getZDot(SubsystemIndex) const 
 
void invalidateSubsystemTopologyCache() const 
Always call this method when a topological change is made to this Subsystem to indicate that any Stag...
Definition: SubsystemGuts.h:503
 
const Vector & getQErr(SubsystemIndex) const 
 
const Vector & getZ(SubsystemIndex) const 
 
const Vector & getUDot(const State &s) const 
Definition: SubsystemGuts.h:136
 
Unique integer type for Subsystem-local uDotErr indexing. 
 
SubsystemIndex getMySubsystemIndex() const 
Return the SubsystemIndex within the containing System. 
Definition: SubsystemGuts.h:493
 
Vector & updMultipliers(SubsystemIndex) const 
 
Vector & updQErr(SubsystemIndex) const 
 
bool isDiscreteVarUpdateValueRealized(SubsystemIndex, DiscreteVariableIndex) const 
Check whether the update value for this auto-update discrete variable has already been computed since...
 
const Stage & getSubsystemStage(SubsystemIndex) const 
 
int getNU() const 
Get total number of shared u's (generalized speeds; mobilities). 
 
int getNUErr(const State &s) const 
Definition: SubsystemGuts.h:201
 
MeasureIndex adoptMeasure(AbstractMeasure &)
Obtain the Subsystem name if one was given on construction of the concrete Subsystem. 
Definition: SubsystemGuts.h:507
 
AbstractValue & updCacheEntry(const State &s, CacheEntryIndex index) const 
Definition: SubsystemGuts.h:246
 
AbstractValue & updCacheEntry(SubsystemIndex, CacheEntryIndex) const 
Retrieve a writable reference to the value contained in a particular cache entry. ...
 
void markCacheValueNotRealized(SubsystemIndex, CacheEntryIndex) const 
Normally cache entries are invalidated automatically, however this method allows manual invalidation ...
 
void advanceSubsystemToStage(SubsystemIndex, Stage) const 
Advance a particular Subsystem's current stage by one to the indicated stage. 
 
QErrIndex allocateQErr(SubsystemIndex, int nqerr) const 
Allocate nqerr cache slots to hold the current error for position-level (holonomic) constraint equati...
 
Unique integer type for Subsystem-local u indexing. 
 
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition: Assembler.h:37
 
CacheEntryIndex allocateCacheEntry(SubsystemIndex, Stage earliest, Stage latest, AbstractValue *) const 
There are two Stages supplied explicitly as arguments to this method: earliest and latest...
 
virtual int realizeSubsystemModelImpl(State &s) const 
Definition: SubsystemGuts.h:411
 
Measure_< T > getMeasure_(MeasureIndex mx) const 
Return the Measure whose index within this Subsystem is given. 
Definition: SubsystemGuts.h:284
 
Unique integer type for Subsystem-local uErr indexing. 
 
Real getDiscreteVarLastUpdateTime(SubsystemIndex, DiscreteVariableIndex) const 
Return the time of last update for this discrete variable. 
 
DiscreteVariableIndex allocateDiscreteVariable(State &s, Stage g, AbstractValue *v) const 
Definition: SubsystemGuts.h:91
 
Unique integer type for Subsystem-local qErr indexing. 
 
This class is basically a glorified enumerated type, type-safe and range checked but permitting conve...
Definition: Stage.h:50
 
SystemEventTriggerIndex getEventTriggerStartByStage(Stage) const 
Return the index within the global event trigger array at which the first of the event triggers assoc...
 
int getNQErr() const 
Return the total number nqerr=mp+nQuaternions of cache entries for position-level constraint errors...
 
Vector & updUErr(const State &s) const 
Definition: SubsystemGuts.h:170
 
int size() const 
Definition: VectorBase.h:396
 
SystemMultiplierIndex getMultipliersStart(const State &s) const 
Definition: SubsystemGuts.h:209
 
const AbstractValue & getDiscreteVariable(SubsystemIndex, DiscreteVariableIndex) const 
Get the current value of the indicated discrete variable. 
 
UDotErrIndex allocateUDotErr(SubsystemIndex, int nudoterr) const 
Allocate nudoterr cache slots to hold the current error for acceleration-level (acceleration-only, nonholonomic first derivative, and holonomic second derivative) constraint equations. 
 
SystemYIndex getUStart() const 
Returns the y index at which the u's begin. Callable at Model stage. 
 
CacheEntryIndex getDiscreteVarUpdateIndex(SubsystemIndex, DiscreteVariableIndex) const 
For an auto-updating discrete variable, return the CacheEntryIndex for its associated update cache en...
 
#define SimTK_ASSERT(cond, msg)
Definition: ExceptionMacros.h:374
 
SystemUDotErrIndex getUDotErrStart(SubsystemIndex) const 
 
UDotErrIndex allocateUDotErr(const State &s, int nudoterr) const 
Definition: SubsystemGuts.h:113
 
Vector & updUDot(const State &s) const 
Definition: SubsystemGuts.h:145
 
bool isCacheValueRealized(SubsystemIndex, CacheEntryIndex) const 
Check whether the value in a particular cache entry has been recalculated since the last change to th...
 
virtual int realizeSubsystemPositionImpl(const State &s) const 
Definition: SubsystemGuts.h:414
 
void advanceToStage(const State &s, Stage g) const 
Definition: SubsystemGuts.h:236
 
int getNMultipliers() const 
Return the total number of constraint multipliers; necessarily the same as the number of acceleration...
 
bool subsystemTopologyHasBeenRealized() const 
Returns true if this subsystem's realizeTopology() method has been called since the last topological ...
Definition: SubsystemGuts.h:323
 
This is the base class for all Measure handle classes. 
Definition: Measure.h:151
 
const Vector & getZDot(const State &s) const 
Definition: SubsystemGuts.h:138
 
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:593
 
EventTriggerByStageIndex allocateEventTriggersByStage(const State &s, Stage g, int ntriggers) const 
Definition: SubsystemGuts.h:116
 
int getNUErr() const 
Return the total number nuerr=mp+mv of cache entries for velocity-level constraint errors (including ...
 
Vector & updUDotErr(SubsystemIndex) const 
 
This unique integer type is for indexing global "multiplier-like" arrays, that is, arrays that inherently have the same dimension as the total number of Lagrange multipliers in the full System-level view of the State. 
 
const Subsystem & getOwnerSubsystemHandle() const 
Return a const reference to the Subsystem handle object that is the unique owner of this Subsystem::G...
Definition: SubsystemGuts.h:442
 
QIndex allocateQ(State &s, const Vector &qInit) const 
Definition: SubsystemGuts.h:83
 
This object is intended to contain all state information for a SimTK::System, except topological info...
Definition: State.h:276
 
const Vector & getQDotDot(const State &s) const 
Definition: SubsystemGuts.h:140
 
const Vector & getUWeights(const State &s) const 
Definition: SubsystemGuts.h:125
 
int getNQ() const 
Get total number of shared q's (generalized coordinates; second order state variables). 
 
void setU(State &s, const Vector &u) const 
Definition: SubsystemGuts.h:225
 
const Vector & getUErr(const State &s) const 
Definition: SubsystemGuts.h:154
 
const Vector & getQErrWeights(SubsystemIndex) const 
 
const AbstractValue & getDiscreteVariable(const State &s, DiscreteVariableIndex index) const 
Definition: SubsystemGuts.h:240
 
AbstractValue & updDiscreteVariable(State &s, DiscreteVariableIndex index) const 
Definition: SubsystemGuts.h:242
 
void setSystem(System &sys, SubsystemIndex id)
Definition: SubsystemGuts.h:308
 
const Vector & getUDotErr(const State &s) const 
Definition: SubsystemGuts.h:161
 
const Vector & getUWeights(SubsystemIndex) const 
 
AbstractValue & updDiscreteVariable(SubsystemIndex, DiscreteVariableIndex)
Get a writable reference to the value stored in the indicated discrete state variable dv...
 
Vector & updQ(State &s) const 
Definition: SubsystemGuts.h:130
 
UIndex allocateU(State &s, const Vector &uInit) const 
Definition: SubsystemGuts.h:85
 
Vector & updU(SubsystemIndex)
 
These are all the possible causes for events. 
Definition: Event.h:123
 
const AbstractValue & getDiscreteVarUpdateValue(const State &s, DiscreteVariableIndex dx) const 
Definition: SubsystemGuts.h:254
 
const Vector & getMultipliers(const State &s) const 
Definition: SubsystemGuts.h:163
 
DiscreteVariableIndex allocateAutoUpdateDiscreteVariable(SubsystemIndex, Stage invalidates, AbstractValue *, Stage updateDependsOn)
This method allocates a DiscreteVariable whose value should be updated automatically after each time ...
 
SystemQErrIndex getQErrStart(const State &s) const 
Definition: SubsystemGuts.h:194
 
SystemQIndex getQStart(const State &s) const 
Definition: SubsystemGuts.h:179
 
bool isCacheValueRealized(const State &s, CacheEntryIndex cx) const 
Definition: SubsystemGuts.h:266
 
Vector & updEventTriggersByStage(const State &s, Stage g) const 
Definition: SubsystemGuts.h:176
 
virtual int realizeSubsystemDynamicsImpl(const State &s) const 
Definition: SubsystemGuts.h:416
 
Vector & updZ(State &s) const 
Definition: SubsystemGuts.h:132
 
Vector & updQErr(const State &s) const 
Definition: SubsystemGuts.h:168
 
const Vector & getUDotErr(SubsystemIndex) const 
 
The SimTK::Array_<T> container class is a plug-compatible replacement for the C++ standard template l...
Definition: Array.h:50
 
ZIndex allocateZ(State &s, const Vector &zInit) const 
Definition: SubsystemGuts.h:87
 
QErrIndex allocateQErr(const State &s, int nqerr) const 
Definition: SubsystemGuts.h:109
 
This unique integer type is for indexing global "q-like" arrays, that is, arrays that inherently have...
 
This unique integer type is for indexing global "qErr-like" arrays, that is, arrays that inherently h...
 
Unique integer type for Subsystem-local z indexing. 
 
Subsystem & updOwnerSubsystemHandle()
Return a writable reference to the Subsystem handle object that is the unique owner of this Subsystem...
Definition: SubsystemGuts.h:448
 
int getNQ(const State &s) const 
Definition: SubsystemGuts.h:181
 
bool isInSameSystem(const Subsystem &otherSubsystem) const 
Return true if this Subsystem is contained in the same System as contains the given otherSubsystem...
Definition: SubsystemGuts.h:515
 
This unique integer type is for indexing global "uErr-like" arrays, that is, arrays that inherently h...
 
const Vector & getZWeights(const State &s) const 
Definition: SubsystemGuts.h:127
 
AbstractValue & updDiscreteVarUpdateValue(const State &s, DiscreteVariableIndex dx) const 
Definition: SubsystemGuts.h:257
 
void setZ(State &s, const Vector &z) const 
Definition: SubsystemGuts.h:229
 
System & updSystem()
Return a writable reference to the System that contains this Subsystem. 
Definition: SubsystemGuts.h:520
 
SystemUDotErrIndex getUDotErrStart(const State &s) const 
Definition: SubsystemGuts.h:204
 
const Vector & getEventTriggersByStage(const State &s, Stage g) const 
Definition: SubsystemGuts.h:165
 
Vector & updU(State &s) const 
Definition: SubsystemGuts.h:131
 
SystemYIndex getQStart() const 
Returns the y index at which the q's begin. Callable at Model stage. 
 
DiscreteVariableIndex allocateDiscreteVariable(SubsystemIndex, Stage invalidates, AbstractValue *)
The Stage supplied here in the call is the earliest subsystem stage which is invalidated by a change ...
 
Unique integer type for Subsystem-local q indexing. 
 
int getNUDotErr(const State &s) const 
Definition: SubsystemGuts.h:206
 
The abstract parent of all Subsystem implementation classes. 
Definition: SubsystemGuts.h:47
 
void setOwnerSubsystemHandle(Subsystem &subsys)
Provide a reference to the Subsystem handle object that is the unique owner of this Subsystem::Guts o...
Definition: SubsystemGuts.h:457
 
virtual int realizeSubsystemTimeImpl(const State &s) const 
Definition: SubsystemGuts.h:413
 
Higher than any legitimate Stage. 
Definition: Stage.h:63
 
virtual int realizeSubsystemReportImpl(const State &s) const 
Definition: SubsystemGuts.h:418
 
int getNMultipliers(const State &s) const 
Definition: SubsystemGuts.h:211
 
void markCacheValueRealized(const State &s, CacheEntryIndex cx) const 
Definition: SubsystemGuts.h:268
 
const System & getSystem() const 
Return a const reference to the System that contains this Subsystem. 
Definition: SubsystemGuts.h:518
 
This unique integer type is for identifying a triggered event within a particular Stage of the full S...
 
int getNZ(const State &s) const 
Definition: SubsystemGuts.h:191
 
const String & getName() const 
Report back the name supplied on construction; this is not interpreted in any way by Simbody...
Definition: SubsystemGuts.h:65
 
Stage getStage(const State &s) const 
Definition: SubsystemGuts.h:234
 
void markCacheValueNotRealized(const State &s, CacheEntryIndex cx) const 
Definition: SubsystemGuts.h:270
 
const Vector & getEventTriggersByStage(Stage) const 
 
int getNQErr(const State &s) const 
Definition: SubsystemGuts.h:196
 
virtual int realizeSubsystemTopologyImpl(State &s) const 
Definition: SubsystemGuts.h:410
 
int getNUDotErr() const 
Return the total number nudotErr=mp+mv+ma of cache entries for acceleration-level constraint errors (...
 
virtual int realizeSubsystemVelocityImpl(const State &s) const 
Definition: SubsystemGuts.h:415
 
Vector & updQDot(SubsystemIndex) const 
 
const Vector & getQDot(const State &s) const 
Definition: SubsystemGuts.h:134
 
SimTK::String is a plug-compatible std::string replacement (plus some additional functionality) inten...
Definition: String.h:62
 
virtual int realizeSubsystemInstanceImpl(const State &s) const 
Definition: SubsystemGuts.h:412
 
SystemUErrIndex getUErrStart(const State &s) const 
Definition: SubsystemGuts.h:199
 
Vector & updZDot(const State &s) const 
Definition: SubsystemGuts.h:147
 
Declares the user-visible part of a SimTK::State, the implementation is done in a separate internal c...
 
const AbstractValue & getCacheEntry(SubsystemIndex, CacheEntryIndex) const 
Retrieve a const reference to the value contained in a particular cache entry. 
 
void setQ(State &s, const Vector &q) const 
Definition: SubsystemGuts.h:221
 
Abstract base class representing an arbitrary value of self-describing type. 
Definition: Value.h:41
 
This unique integer type is for indexing global "uDotErr-like" arrays, that is, arrays that inherentl...
 
UErrIndex allocateUErr(SubsystemIndex, int nuerr) const 
Allocate nuerr cache slots to hold the current error for velocity-level (nonholonomic and holonomic f...
 
Vector & updQDotDot(SubsystemIndex) const 
 
SystemYIndex getZStart() const 
Returns the y index at which the z's begin. Callable at Model stage. 
 
void setSystem(System &system, SubsystemIndex subx)
Inform this Subsystem of the System that contains it, as well as the SubsystemIndex which the System ...
Definition: SubsystemGuts.h:522
 
This unique integer type is for selecting discrete variables. 
 
const Vector & getQErrWeights(const State &s) const 
Definition: SubsystemGuts.h:156
 
This unique integer type is for indexing global "z-like" arrays, that is, arrays that inherently have...
 
const String & getVersion() const 
Report back the version string supplied on construction; this i not interpreted in any way by Simbody...
Definition: SubsystemGuts.h:68
 
Vector & updQDotDot(const State &s) const 
Definition: SubsystemGuts.h:149
 
const Vector & getZ(const State &s) const 
Definition: SubsystemGuts.h:123
 
const AbstractValue & getCacheEntry(const State &s, CacheEntryIndex index) const 
Definition: SubsystemGuts.h:244
 
QIndex allocateQ(SubsystemIndex, const Vector &qInit)
Allocate generalized coordinates q, which are second order continuous state variables. 
 
const AbstractValue & getDiscreteVarUpdateValue(SubsystemIndex, DiscreteVariableIndex) const 
For an auto-updating discrete variable, return the current value of its associated update cache entry...
 
SystemMultiplierIndex getMultipliersStart(SubsystemIndex) const 
 
const Vector & getQ(SubsystemIndex) const 
Per-subsystem access to the global shared variables. 
 
bool subsystemTopologyHasBeenRealized() const 
Returns true if this Subsystem's realizeTopology() method has been called since the last topological ...
Definition: SubsystemGuts.h:499
 
bool isInSystem() const 
Definition: SubsystemGuts.h:297
 
This is the base class that serves as the parent of all SimTK System objects; most commonly Simbody's...
Definition: System.h:97
 
bool hasOwnerSubsystemHandle() const 
Check whether this Subsystem::Guts object is currently owned by some Subsystem handle object...
Definition: SubsystemGuts.h:461
 
const Vector & getMultipliers(SubsystemIndex) const 
 
UIndex allocateU(SubsystemIndex, const Vector &uInit)
Allocate generalized speeds u, which are first order continuous state variables related to the deriva...
 
const Vector & getUErrWeights(SubsystemIndex) const 
 
int getNU(const State &s) const 
Definition: SubsystemGuts.h:186
 
CacheEntryIndex getDiscreteVarUpdateIndex(const State &s, DiscreteVariableIndex dx) const 
Definition: SubsystemGuts.h:251
 
SystemZIndex getZStart(const State &s) const 
Definition: SubsystemGuts.h:189
 
Provide a unique integer type for identifying Subsystems. 
 
UErrIndex allocateUErr(const State &s, int nuerr) const 
Definition: SubsystemGuts.h:111
 
const Vector & getUDot(SubsystemIndex) const 
 
ZIndex allocateZ(SubsystemIndex, const Vector &zInit)
Allocate auxiliary first order continuous state variables z. 
 
SystemEventTriggerByStageIndex getEventTriggerStartByStage(const State &s, Stage g) const 
Definition: SubsystemGuts.h:214
 
This unique integer type is for selecting non-shared cache entries. 
 
Real getDiscreteVarLastUpdateTime(const State &s, DiscreteVariableIndex dx) const 
Definition: SubsystemGuts.h:248
 
Vector & updZ(SubsystemIndex)
 
Results returned by the handleEvent() method. 
Definition: Event.h:342
 
const Vector & getUErr(SubsystemIndex) const 
 
This is the header which should be included in user programs that would like to make use of all the S...
 
virtual int realizeSubsystemAccelerationImpl(const State &s) const 
Definition: SubsystemGuts.h:417
 
const Vector & getU(const State &s) const 
Definition: SubsystemGuts.h:121
 
Unique integer type for Subsystem-local, per-stage event indexing. 
 
const Vector & getU(SubsystemIndex) const 
 
const Vector & getQ(const State &s) const 
Definition: SubsystemGuts.h:119
 
This unique integer type is for indexing global "u-like" arrays, that is, arrays that inherently have...
 
void markDiscreteVarUpdateValueRealized(SubsystemIndex, DiscreteVariableIndex) const 
Mark the update value for this auto-update discrete variable as up-to-date with respect to the state ...
 
Vector & updMultipliers(const State &s) const 
Definition: SubsystemGuts.h:174
 
Includes internal headers providing declarations for the basic SimTK Core classes. 
 
Vector & updUDot(SubsystemIndex) const 
 
SystemYErrIndex getQErrStart() const 
Returns the yErr index at which the qErr's begin. Callable at Instance stage. 
 
bool isOwnerHandle() const 
Is this Subsystem handle the owner of the Subsystem::Guts object it points to? This is true if the ha...
Definition: SubsystemGuts.h:525
 
EventTriggerByStageIndex allocateEventTrigger(SubsystemIndex, Stage stage, int nevent) const 
Allocate room for nevent witness function values that will be available at the indicated stage...
 
const System & getSystem() const 
Definition: SubsystemGuts.h:300
 
Vector & updUDotErr(const State &s) const 
Definition: SubsystemGuts.h:172
 
const Vector & getQDot(SubsystemIndex) const 
Per-subsystem access to the shared cache entries. 
 
SystemUIndex getUStart(const State &s) const 
Definition: SubsystemGuts.h:184
 
Vector & updZDot(SubsystemIndex) const 
 
const Vector & getUErrWeights(const State &s) const 
Definition: SubsystemGuts.h:158
 
AbstractMeasure getMeasure(MeasureIndex mx) const 
Return the Measure whose index within this Subsystem is given, as an AbstractMeasure (that is...
Definition: SubsystemGuts.h:291
 
Vector & updEventTriggersByStage(Stage) const 
 
SubsystemIndex getMySubsystemIndex() const 
Definition: SubsystemGuts.h:314
 
int getNEventTriggersByStage(const State &s, Stage g) const 
Definition: SubsystemGuts.h:216
 
Options for the handleEvent() method. 
Definition: Event.h:266
 
const String & getName() const 
Obtain the Subsystem name if one was given on construction of the concrete Subsystem. 
Definition: SubsystemGuts.h:496
 
This is the base handle class for all Measures whose value type is known, including all the Simbody b...
Definition: Measure.h:261
 
int getNZ() const 
Get total number of shared z's (auxiliary state variables). 
 
System & updSystem()
Definition: SubsystemGuts.h:304
 
int getNEventTriggersByStage(Stage) const 
Return the size of the partition of event trigger functions which are evaluated at a given Stage...
 
void markCacheValueRealized(SubsystemIndex, CacheEntryIndex) const 
Mark the value of a particular cache entry as up to date after it has been recalculated. 
 
const Vector & getQErr(const State &s) const 
Definition: SubsystemGuts.h:152
 
This is a class to represent unique IDs for events in a type-safe way.