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); }
   101                (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
   295                  "Subsystem::Guts::getMeasure()");
   300 bool isInSameSystem(
const Subsystem& otherSubsystem) 
const;
   314     m_mySubsystemIndex = id;
   317     SimTK_ASSERT(isInSystem(), 
"Subsystem::getMySubsystemIndex()");
   318     return m_mySubsystemIndex;
   326 {   
return m_subsystemTopologyRealized; }
   336 void invalidateSubsystemTopologyCache() 
const;
   351 void realizeSubsystemTopology    (
State&) 
const;
   352 void realizeSubsystemModel       (
State&) 
const;
   353 void realizeSubsystemInstance    (
const State&) 
const;
   354 void realizeSubsystemTime        (
const State&) 
const;
   355 void realizeSubsystemPosition    (
const State&) 
const;
   356 void realizeSubsystemVelocity    (
const State&) 
const;
   357 void realizeSubsystemDynamics    (
const State&) 
const;
   358 void realizeSubsystemAcceleration(
const State&) 
const;
   359 void realizeSubsystemReport      (
const State&) 
const;
   366 void calcDecorativeGeometryAndAppend
   369 void createScheduledEvent(
const State& state, 
EventId& eventId) 
const;
   370 void createTriggeredEvent(
const State& state, 
EventId& eventId, 
   378 void calcEventTriggerInfo
   380 void calcTimeOfNextScheduledEvent
   382     bool includeCurrentTime) 
const;
   383 void calcTimeOfNextScheduledReport
   385     bool includeCurrentTime) 
const;
   422 virtual int calcDecorativeGeometryAndAppendImpl
   425 virtual void calcEventTriggerInfoImpl
   427 virtual void calcTimeOfNextScheduledEventImpl
   429     bool includeCurrentTime) 
const {}
   430 virtual void calcTimeOfNextScheduledReportImpl
   432     bool includeCurrentTime) 
const {}
   433 virtual void handleEventsImpl
   437 virtual void reportEventsImpl
   445     SimTK_ASSERT(m_myHandle, 
"Subsystem::getOwnerSubsystemHandle()");
   451     SimTK_ASSERT(m_myHandle, 
"Subsystem::getOwnerSubsystemHandle()");
   474 String          m_subsystemVersion;
   486 mutable bool    m_subsystemTopologyRealized;
   532 #endif // SimTK_SimTKCOMMON_SUBSYSTEM_GUTS_H_ const Vector & getQErrWeights(const State &s) const
Definition: SubsystemGuts.h:156
 
const Vector & getMultipliers(SubsystemIndex) const
 
SystemYIndex getZStart() const
Returns the y index at which the z's begin. Callable at Model stage. 
 
Vector & updQDotDot(const State &s) const
Definition: SubsystemGuts.h:149
 
const Vector & getQ(SubsystemIndex) const
Per-subsystem access to the global shared variables. 
 
A Subsystem is expected to be part of a larger System and to have interdependencies with other subsys...
Definition: Subsystem.h:55
 
Vector & updQ(SubsystemIndex)
 
MeasureIndex adoptMeasure(AbstractMeasure &m)
Add a new Measure to this Subsystem. 
 
virtual int realizeSubsystemTimeImpl(const State &s) const
Definition: SubsystemGuts.h:415
 
#define SimTK_SimTKCOMMON_EXPORT
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:224
 
const AbstractValue & getDiscreteVariable(const State &s, DiscreteVariableIndex index) const
Definition: SubsystemGuts.h:240
 
SubsystemIndex getMySubsystemIndex() const
Return the SubsystemIndex within the containing System. 
Definition: SubsystemGuts.h:495
 
SystemMultiplierIndex getMultipliersStart(SubsystemIndex) const
 
AbstractMeasure getMeasure(MeasureIndex mx) const
Return the Measure whose index within this Subsystem is given, as an AbstractMeasure (that is...
Definition: SubsystemGuts.h:293
 
SystemUDotErrIndex getUDotErrStart(const State &s) const
Definition: SubsystemGuts.h:204
 
const AbstractValue & getDiscreteVarUpdateValue(const State &s, DiscreteVariableIndex dx) const
Definition: SubsystemGuts.h:254
 
const AbstractValue & getDiscreteVariable(SubsystemIndex, DiscreteVariableIndex) const
Get the current value of the indicated discrete variable. 
 
DiscreteVariableIndex allocateDiscreteVariable(State &s, Stage g, AbstractValue *v) const
Definition: SubsystemGuts.h:91
 
Unique integer type for Subsystem-local uDotErr indexing. 
 
Vector & updUDot(const State &s) const
Definition: SubsystemGuts.h:145
 
AbstractValue & updDiscreteVariable(State &s, DiscreteVariableIndex index) const
Definition: SubsystemGuts.h:242
 
const Vector & getQDotDot(SubsystemIndex) const
 
const Vector & getUWeights(SubsystemIndex) const
 
int getNU(const State &s) const
Definition: SubsystemGuts.h:186
 
void advanceSubsystemToStage(SubsystemIndex, Stage) const
Advance a particular Subsystem's current stage by one to the indicated stage. 
 
MeasureIndex adoptMeasure(AbstractMeasure &)
Obtain the Subsystem name if one was given on construction of the concrete Subsystem. 
Definition: SubsystemGuts.h:509
 
int getNQErr(const State &s) const
Definition: SubsystemGuts.h:196
 
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
 
virtual int realizeSubsystemVelocityImpl(const State &s) const
Definition: SubsystemGuts.h:417
 
virtual int realizeSubsystemModelImpl(State &s) const
Definition: SubsystemGuts.h:413
 
virtual int realizeSubsystemTopologyImpl(State &s) const
Definition: SubsystemGuts.h:412
 
int getNUDotErr(const State &s) const
Definition: SubsystemGuts.h:206
 
Vector & updEventTriggersByStage(const State &s, Stage g) const
Definition: SubsystemGuts.h:176
 
Unique integer type for Subsystem-local uErr indexing. 
 
SubsystemIndex getMySubsystemIndex() const
Definition: SubsystemGuts.h:316
 
bool subsystemTopologyHasBeenRealized() const
Returns true if this Subsystem's realizeTopology() method has been called since the last topological ...
Definition: SubsystemGuts.h:501
 
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:66
 
EventTriggerByStageIndex allocateEventTriggersByStage(const State &s, Stage g, int ntriggers) const
Definition: SubsystemGuts.h:116
 
const String & getName() const
Obtain the Subsystem name if one was given on construction of the concrete Subsystem. 
Definition: SubsystemGuts.h:498
 
SystemZIndex getZStart(const State &s) const
Definition: SubsystemGuts.h:189
 
const Vector & getUDotErr(SubsystemIndex) const
 
void setQ(State &s, const Vector &q) const
Definition: SubsystemGuts.h:221
 
const Vector & getUDot(SubsystemIndex) const
 
int getNMultipliers(const State &s) const
Definition: SubsystemGuts.h:211
 
#define SimTK_ASSERT(cond, msg)
Definition: ExceptionMacros.h:373
 
const Vector & getZDot(const State &s) const
Definition: SubsystemGuts.h:138
 
int getNUDotErr() const
Return the total number nudotErr=mp+mv+ma of cache entries for acceleration-level constraint errors (...
 
void setZ(State &s, const Vector &z) const
Definition: SubsystemGuts.h:229
 
CacheEntryIndex getDiscreteVarUpdateIndex(SubsystemIndex, DiscreteVariableIndex) const
For an auto-updating discrete variable, return the CacheEntryIndex for its associated update cache en...
 
Vector & updZDot(SubsystemIndex) const
 
This is the base class for all Measure handle classes. 
Definition: Measure.h:151
 
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:606
 
virtual int realizeSubsystemDynamicsImpl(const State &s) const
Definition: SubsystemGuts.h:418
 
int getNZ() const
Get total number of shared z's (auxiliary state variables). 
 
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 Vector & getQDot(SubsystemIndex) const
Per-subsystem access to the shared cache entries. 
 
Vector & updQ(State &s) const
Definition: SubsystemGuts.h:130
 
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:517
 
virtual int realizeSubsystemPositionImpl(const State &s) const
Definition: SubsystemGuts.h:416
 
This object is intended to contain all state information for a SimTK::System, except topological info...
Definition: State.h:280
 
const Vector & getU(SubsystemIndex) const
 
SystemYErrIndex getQErrStart() const
Returns the yErr index at which the qErr's begin. Callable at Instance stage. 
 
const AbstractValue & getDiscreteVarUpdateValue(SubsystemIndex, DiscreteVariableIndex) const
For an auto-updating discrete variable, return the current value of its associated update cache entry...
 
const Vector & getZ(const State &s) const
Definition: SubsystemGuts.h:123
 
SystemYIndex getUStart() const
Returns the y index at which the u's begin. Callable at Model stage. 
 
void setSystem(System &sys, SubsystemIndex id)
Definition: SubsystemGuts.h:310
 
const Vector & getZWeights(SubsystemIndex) const
 
bool isCacheValueRealized(SubsystemIndex, CacheEntryIndex) const
Check whether the value in a particular cache entry has been recalculated since the last change to th...
 
AbstractValue & updDiscreteVariable(SubsystemIndex, DiscreteVariableIndex)
Get a writable reference to the value stored in the indicated discrete state variable dv...
 
Vector & updU(SubsystemIndex)
 
Vector & updUErr(SubsystemIndex) const
 
These are all the possible causes for events. 
Definition: Event.h:126
 
bool isDiscreteVarUpdateValueRealized(SubsystemIndex, DiscreteVariableIndex) const
Check whether the update value for this auto-update discrete variable has already been computed since...
 
SystemMultiplierIndex getMultipliersStart(const State &s) const
Definition: SubsystemGuts.h:209
 
Vector & updQErr(const State &s) const
Definition: SubsystemGuts.h:168
 
Vector & updUErr(const State &s) const
Definition: SubsystemGuts.h:170
 
int getNQ(const State &s) const
Definition: SubsystemGuts.h:181
 
DiscreteVariableIndex allocateAutoUpdateDiscreteVariable(SubsystemIndex, Stage invalidates, AbstractValue *, Stage updateDependsOn)
This method allocates a DiscreteVariable whose value should be updated automatically after each time ...
 
const Vector & getQErr(const State &s) const
Definition: SubsystemGuts.h:152
 
Subsystem::Guts & updSubsystemGuts()
Obtain the Subsystem name if one was given on construction of the concrete Subsystem. 
Definition: Subsystem.h:354
 
UDotErrIndex allocateUDotErr(const State &s, int nudoterr) const
Definition: SubsystemGuts.h:113
 
int getNQErr() const
Return the total number nqerr=mp+nQuaternions of cache entries for position-level constraint errors...
 
const Vector & getQErrWeights(SubsystemIndex) const
 
const Vector & getUErrWeights(const State &s) const
Definition: SubsystemGuts.h:158
 
int getNMultipliers() const
Return the total number of constraint multipliers; necessarily the same as the number of acceleration...
 
const Vector & getMultipliers(const State &s) const
Definition: SubsystemGuts.h:163
 
Vector & updZDot(const State &s) const
Definition: SubsystemGuts.h:147
 
const Vector & getUDot(const State &s) const
Definition: SubsystemGuts.h:136
 
void markCacheValueRealized(SubsystemIndex, CacheEntryIndex) const
Mark the value of a particular cache entry as up to date after it has been recalculated. 
 
SystemYIndex getQStart() const
Returns the y index at which the q's begin. Callable at Model stage. 
 
The Array_<T> container class is a plug-compatible replacement for the C++ standard template library ...
Definition: Array.h:53
 
virtual int realizeSubsystemInstanceImpl(const State &s) const
Definition: SubsystemGuts.h:414
 
SystemEventTriggerIndex getEventTriggerStartByStage(Stage) const
Return the index within the global event trigger array at which the first of the event triggers assoc...
 
void invalidateSubsystemTopologyCache() const
Always call this method when a topological change is made to this Subsystem to indicate that any Stag...
 
This unique integer type is for indexing global "q-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
 
const Vector & getUErr(SubsystemIndex) const
 
This unique integer type is for indexing global "qErr-like" arrays, that is, arrays that inherently h...
 
Measure_< T > getMeasure_(MeasureIndex mx) const
Return the Measure whose index within this Subsystem is given. 
Definition: SubsystemGuts.h:286
 
Unique integer type for Subsystem-local z indexing. 
 
bool isInSameSystem(const Subsystem &otherSubsystem) const
 
Subsystem & updOwnerSubsystemHandle()
Return a writable reference to the Subsystem handle object that is the unique owner of this Subsystem...
Definition: SubsystemGuts.h:450
 
QIndex allocateQ(State &s, const Vector &qInit) const
Definition: SubsystemGuts.h:83
 
Vector & updQDotDot(SubsystemIndex) const
 
virtual int realizeSubsystemReportImpl(const State &s) const
Definition: SubsystemGuts.h:420
 
This unique integer type is for indexing global "uErr-like" arrays, that is, arrays that inherently h...
 
const Vector & getUErrWeights(SubsystemIndex) const
 
System & updSystem()
Return a writable reference to the System that contains this Subsystem. 
Definition: SubsystemGuts.h:522
 
AbstractValue & updDiscreteVarUpdateValue(const State &s, DiscreteVariableIndex dx) const
Definition: SubsystemGuts.h:257
 
const AbstractValue & getCacheEntry(SubsystemIndex, CacheEntryIndex) const
Retrieve a const reference to the value contained in a particular cache entry. 
 
const Vector & getQDot(const State &s) const
Definition: SubsystemGuts.h:134
 
QErrIndex allocateQErr(const State &s, int nqerr) const
Definition: SubsystemGuts.h:109
 
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. 
 
const AbstractValue & getCacheEntry(const State &s, CacheEntryIndex index) const
Definition: SubsystemGuts.h:244
 
void advanceToStage(const State &s, Stage g) const
Definition: SubsystemGuts.h:236
 
The abstract parent of all Subsystem implementation classes. 
Definition: SubsystemGuts.h:47
 
Vector & updQDot(SubsystemIndex) const
 
Vector & updMultipliers(SubsystemIndex) const
 
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:459
 
Stage getStage(const State &s) const
Definition: SubsystemGuts.h:234
 
const Vector & getQErr(SubsystemIndex) const
 
UErrIndex allocateUErr(const State &s, int nuerr) const
Definition: SubsystemGuts.h:111
 
Higher than any legitimate Stage. 
Definition: Stage.h:79
 
Vector & updQErr(SubsystemIndex) const
 
Vector & updQDot(const State &s) const
Definition: SubsystemGuts.h:143
 
const Vector & getQDotDot(const State &s) const
Definition: SubsystemGuts.h:140
 
SystemEventTriggerByStageIndex getEventTriggerStartByStage(const State &s, Stage g) const
Definition: SubsystemGuts.h:214
 
const Vector & getZWeights(const State &s) const
Definition: SubsystemGuts.h:127
 
void setU(State &s, const Vector &u) const
Definition: SubsystemGuts.h:225
 
AbstractValue & updCacheEntry(SubsystemIndex, CacheEntryIndex) const
Retrieve a writable reference to the value contained in a particular cache entry. ...
 
Vector & updZ(State &s) const
Definition: SubsystemGuts.h:132
 
This unique integer type is for identifying a triggered event within a particular Stage of the full S...
 
CacheEntryIndex getDiscreteVarUpdateIndex(const State &s, DiscreteVariableIndex dx) const
Definition: SubsystemGuts.h:251
 
Real getDiscreteVarLastUpdateTime(const State &s, DiscreteVariableIndex dx) const
Definition: SubsystemGuts.h:248
 
void markCacheValueNotRealized(SubsystemIndex, CacheEntryIndex) const
(Advanced) Normally cache entries are invalidated automatically, however this method allows manual in...
 
AbstractValue & updDiscreteVarUpdateValue(SubsystemIndex, DiscreteVariableIndex) const
For an auto-updating discrete variable, return a writable reference to the value of its associated up...
 
ZIndex allocateZ(State &s, const Vector &zInit) const
Definition: SubsystemGuts.h:87
 
SystemQErrIndex getQErrStart(const State &s) const
Definition: SubsystemGuts.h:194
 
int getNEventTriggersByStage(const State &s, Stage g) const
Definition: SubsystemGuts.h:216
 
const System & getSystem() const
Return a const reference to the System that contains this Subsystem. 
Definition: SubsystemGuts.h:520
 
SimTK::String is a plug-compatible std::string replacement (plus some additional functionality) inten...
Definition: String.h:62
 
const Subsystem::Guts & getSubsystemGuts() const
Obtain the Subsystem name if one was given on construction of the concrete Subsystem. 
Definition: Subsystem.h:353
 
UIndex allocateU(State &s, const Vector &uInit) const
Definition: SubsystemGuts.h:85
 
Real getDiscreteVarLastUpdateTime(SubsystemIndex, DiscreteVariableIndex) const
Return the time of last update for this discrete variable. 
 
Vector & updUDotErr(SubsystemIndex) const
 
Declares the user-visible part of a SimTK::State, the implementation is done in a separate internal c...
 
const Vector & getUErr(const State &s) const
Definition: SubsystemGuts.h:154
 
Abstract base class representing an arbitrary value of unknown type. 
Definition: Value.h:49
 
SystemYErrIndex getUErrStart() const
Returns the yErr index at which the uErr's begin. Callable at Instance stage. 
 
This unique integer type is for indexing global "uDotErr-like" arrays, that is, arrays that inherentl...
 
int getNQ() const
Get total number of shared q's (generalized coordinates; second order state variables). 
 
QErrIndex allocateQErr(SubsystemIndex, int nqerr) const
Allocate nqerr cache slots to hold the current error for position-level (holonomic) constraint equati...
 
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:524
 
This unique integer type is for selecting discrete variables. 
 
bool isInSystem() const
Definition: SubsystemGuts.h:299
 
const Vector & getEventTriggersByStage(Stage) const
 
This unique integer type is for indexing global "z-like" arrays, that is, arrays that inherently have...
 
const String & getVersion() const
Obtain the Subsystem version string if one was given on construction. 
Definition: SubsystemGuts.h:499
 
const Vector & getUDotErr(const State &s) const
Definition: SubsystemGuts.h:161
 
Vector & updUDotErr(const State &s) const
Definition: SubsystemGuts.h:172
 
bool subsystemTopologyHasBeenRealized() const
Returns true if this subsystem's realizeTopology() method has been called since the last topological ...
Definition: SubsystemGuts.h:325
 
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:444
 
void markCacheValueNotRealized(const State &s, CacheEntryIndex cx) const
Definition: SubsystemGuts.h:272
 
QIndex allocateQ(SubsystemIndex, const Vector &qInit)
Allocate generalized coordinates q, which are second order continuous state variables. 
 
SystemUErrIndex getUErrStart(const State &s) const
Definition: SubsystemGuts.h:199
 
int size() const
Definition: VectorBase.h:396
 
const Vector & getEventTriggersByStage(const State &s, Stage g) const
Definition: SubsystemGuts.h:165
 
This is the base class that serves as the parent of all SimTK System objects; most commonly Simbody's...
Definition: System.h:97
 
const Vector & getU(const State &s) const
Definition: SubsystemGuts.h:121
 
int getNZ(const State &s) const
Definition: SubsystemGuts.h:191
 
UIndex allocateU(SubsystemIndex, const Vector &uInit)
Allocate generalized speeds u, which are first order continuous state variables related to the deriva...
 
const String & getName() const
Report back the name supplied on construction; this is not interpreted in any way by Simbody...
Definition: SubsystemGuts.h:65
 
SystemUDotErrIndex getUDotErrStart(SubsystemIndex) const
 
bool isCacheValueRealized(const State &s, CacheEntryIndex cx) const
Definition: SubsystemGuts.h:266
 
int getNUErr(const State &s) const
Definition: SubsystemGuts.h:201
 
virtual int realizeSubsystemAccelerationImpl(const State &s) const
Definition: SubsystemGuts.h:419
 
Provide a unique integer type for identifying Subsystems. 
 
int getNU() const
Get total number of shared u's (generalized speeds; mobilities). 
 
Vector & updEventTriggersByStage(Stage) const
 
const Vector & getQ(const State &s) const
Definition: SubsystemGuts.h:119
 
void markDiscreteVarUpdateValueRealized(SubsystemIndex, DiscreteVariableIndex) const
Mark the update value for this auto-update discrete variable as up-to-date with respect to the state ...
 
ZIndex allocateZ(SubsystemIndex, const Vector &zInit)
Allocate auxiliary first order continuous state variables z. 
 
AbstractMeasure getMeasure(MeasureIndex) const
Obtain the Subsystem name if one was given on construction of the concrete Subsystem. 
Definition: SubsystemGuts.h:511
 
This unique integer type is for selecting non-shared cache entries. 
 
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:527
 
Vector & updZ(SubsystemIndex)
 
Results returned by the handleEvent() method. 
Definition: Event.h:345
 
const Vector & getZDot(SubsystemIndex) const
 
This is the header which should be included in user programs that would like to make use of all the S...
 
Unique integer type for Subsystem-local, per-stage event indexing. 
 
Vector & updUDot(SubsystemIndex) const
 
Vector & updMultipliers(const State &s) const
Definition: SubsystemGuts.h:174
 
void invalidateSubsystemTopologyCache() const
Always call this method when a topological change is made to this Subsystem to indicate that any Stag...
Definition: SubsystemGuts.h:505
 
EventTriggerByStageIndex allocateEventTrigger(SubsystemIndex, Stage stage, int nevent) const
Allocate room for nevent witness function values that will be available at the indicated stage...
 
SystemQIndex getQStart(const State &s) const
Definition: SubsystemGuts.h:179
 
This unique integer type is for indexing global "u-like" arrays, that is, arrays that inherently have...
 
Includes internal headers providing declarations for the basic SimTK Core classes. 
 
Vector & updU(State &s) const
Definition: SubsystemGuts.h:131
 
const Vector & getUWeights(const State &s) const
Definition: SubsystemGuts.h:125
 
const Stage & getSubsystemStage(SubsystemIndex) const
 
void markCacheValueRealized(const State &s, CacheEntryIndex cx) const
Definition: SubsystemGuts.h:269
 
const Vector & getZ(SubsystemIndex) const
 
const System & getSystem() const
Definition: SubsystemGuts.h:302
 
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. 
 
bool isInSystem() const
Return true if this Subsystem is contained in a System. 
Definition: SubsystemGuts.h:515
 
bool hasOwnerSubsystemHandle() const
Check whether this Subsystem::Guts object is currently owned by some Subsystem handle object...
Definition: SubsystemGuts.h:463
 
UErrIndex allocateUErr(SubsystemIndex, int nuerr) const
Allocate nuerr cache slots to hold the current error for velocity-level (nonholonomic and holonomic f...
 
AbstractValue & updCacheEntry(const State &s, CacheEntryIndex index) const
Definition: SubsystemGuts.h:246
 
Options for the handleEvent() method. 
Definition: Event.h:269
 
This is the base handle class for all Measures whose value type is known, including all the Simbody b...
Definition: Measure.h:263
 
System & updSystem()
Definition: SubsystemGuts.h:306
 
int getNUErr() const
Return the total number nuerr=mp+mv of cache entries for velocity-level constraint errors (including ...
 
CacheEntryIndex allocateCacheEntry(SubsystemIndex, Stage earliest, Stage latest, AbstractValue *value) const
There are two Stages supplied explicitly as arguments to this method: earliest and latest...
 
int getNEventTriggersByStage(Stage) const
Return the size of the partition of event trigger functions which are evaluated at a given Stage...
 
SystemUIndex getUStart(const State &s) const
Definition: SubsystemGuts.h:184
 
This is a class to represent unique IDs for events in a type-safe way.