Simbody
3.7
|
This is the declaration for the System::Guts class, the abstract object to which a System handle points. More...
Protected Member Functions | |
Guts (const Guts &) | |
virtual System::Guts * | cloneImpl () const =0 |
virtual int | realizeTopologyImpl (State &state) const |
virtual int | realizeModelImpl (State &state) const |
virtual int | realizeInstanceImpl (const State &state) const |
virtual int | realizeTimeImpl (const State &state) const |
virtual int | realizePositionImpl (const State &state) const |
virtual int | realizeVelocityImpl (const State &state) const |
virtual int | realizeDynamicsImpl (const State &state) const |
virtual int | realizeAccelerationImpl (const State &state) const |
virtual int | realizeReportImpl (const State &state) const |
virtual void | multiplyByNImpl (const State &state, const Vector &u, Vector &dq) const |
virtual void | multiplyByNTransposeImpl (const State &state, const Vector &fq, Vector &fu) const |
virtual void | multiplyByNPInvImpl (const State &state, const Vector &dq, Vector &u) const |
virtual void | multiplyByNPInvTransposeImpl (const State &state, const Vector &fu, Vector &fq) const |
virtual bool | prescribeQImpl (State &) const |
virtual bool | prescribeUImpl (State &) const |
virtual void | projectQImpl (State &state, Vector &qErrEst, const ProjectOptions &options, ProjectResults &results) const |
virtual void | projectUImpl (State &state, Vector &uErrEst, const ProjectOptions &options, ProjectResults &results) const |
virtual void | handleEventsImpl (State &state, Event::Cause cause, const Array_< EventId > &eventIds, const HandleEventsOptions &options, HandleEventsResults &results) const |
virtual int | reportEventsImpl (const State &state, Event::Cause cause, const Array_< EventId > &eventIds) const |
virtual int | calcEventTriggerInfoImpl (const State &state, Array_< EventTriggerInfo > &info) const |
virtual int | calcTimeOfNextScheduledEventImpl (const State &state, Real &tNextEvent, Array_< EventId > &eventIds, bool includeCurrentTime) const |
virtual int | calcTimeOfNextScheduledReportImpl (const State &state, Real &tNextEvent, Array_< EventId > &eventIds, bool includeCurrentTime) const |
virtual void | getFreeQIndexImpl (const State &s, Array_< SystemQIndex > &freeQs) const |
virtual void | getFreeUIndexImpl (const State &s, Array_< SystemUIndex > &freeUs) const |
Friends | |
class | GutsRep |
This is the declaration for the System::Guts class, the abstract object to which a System handle points.
This is in a separate header file from System because only people who are extending the System class to make their own Systems need to be aware of the details. End users access only methods from the System class and classes derived from System, never anything from System::Guts or its derived classes.
Below is the physical layout of memory for a System, and which portions are allocated by the client program and which by the binary library code. For binary compatibility, only the side which allocated a piece of memory can access it. Exception: both the client and library side must agree on the virtual function table (VFT) ordering of the client's virtual functions.
CLIENT SIDE | LIBRARY SIDE | System System::Guts | System::Guts::GutsRep --------------- ------------------ | ------------- | System::Guts* | --> | System::GutsRep* | --> | GutsRep | --------------- ------------------ | | | ^ | Concrete Guts | | | Opaque | | | class data and | | | stuff | =============== | virt func table | | | | Concrete System ------------------ | | | adds no data | ------------- members
If the concrete System::Guts class also has an opaque implementation, as it will for concrete Systems provided by Simbody, then the System author should expose only the data-free handle class derived from System.
|
explicit |
|
virtual |
|
inlineexplicit |
|
protected |
const String& SimTK::System::Guts::getName | ( | ) | const |
const String& SimTK::System::Guts::getVersion | ( | ) | const |
void SimTK::System::Guts::setHasTimeAdvancedEvents | ( | bool | hasEm | ) |
bool SimTK::System::Guts::hasTimeAdvancedEvents | ( | ) | const |
const State& SimTK::System::Guts::getDefaultState | ( | ) | const |
State& SimTK::System::Guts::updDefaultState | ( | ) |
void SimTK::System::Guts::realize | ( | const State & | s, |
Stage | g = Stage::HighestRuntime |
||
) | const |
SubsystemIndex SimTK::System::Guts::adoptSubsystem | ( | Subsystem & | child | ) |
int SimTK::System::Guts::getNumSubsystems | ( | ) | const |
const Subsystem& SimTK::System::Guts::getSubsystem | ( | SubsystemIndex | ) | const |
Subsystem& SimTK::System::Guts::updSubsystem | ( | SubsystemIndex | ) |
const System& SimTK::System::Guts::getSystem | ( | ) | const |
System& SimTK::System::Guts::updSystem | ( | ) |
void SimTK::System::Guts::setOwnerHandle | ( | System & | ) |
bool SimTK::System::Guts::hasOwnerHandle | ( | ) | const |
|
inline |
|
inline |
|
inline |
bool SimTK::System::Guts::systemTopologyHasBeenRealized | ( | ) | const |
StageVersion SimTK::System::Guts::getSystemTopologyCacheVersion | ( | ) | const |
void SimTK::System::Guts::setSystemTopologyCacheVersion | ( | StageVersion | topoVersion | ) | const |
void SimTK::System::Guts::invalidateSystemTopologyCache | ( | ) | const |
System::Guts* SimTK::System::Guts::clone | ( | ) | const |
const State& SimTK::System::Guts::realizeTopology | ( | ) | const |
void SimTK::System::Guts::realizeModel | ( | State & | ) | const |
void SimTK::System::Guts::realizeInstance | ( | const State & | s | ) | const |
void SimTK::System::Guts::realizeTime | ( | const State & | s | ) | const |
void SimTK::System::Guts::realizePosition | ( | const State & | s | ) | const |
void SimTK::System::Guts::realizeVelocity | ( | const State & | s | ) | const |
void SimTK::System::Guts::realizeDynamics | ( | const State & | s | ) | const |
void SimTK::System::Guts::realizeAcceleration | ( | const State & | s | ) | const |
void SimTK::System::Guts::realizeReport | ( | const State & | s | ) | const |
void SimTK::System::Guts::multiplyByNTranspose | ( | const State & | state, |
const Vector & | fq, | ||
Vector & | fu | ||
) | const |
void SimTK::System::Guts::multiplyByNPInv | ( | const State & | state, |
const Vector & | dq, | ||
Vector & | u | ||
) | const |
void SimTK::System::Guts::multiplyByNPInvTranspose | ( | const State & | state, |
const Vector & | fu, | ||
Vector & | fq | ||
) | const |
bool SimTK::System::Guts::prescribeQ | ( | State & | ) | const |
bool SimTK::System::Guts::prescribeU | ( | State & | ) | const |
void SimTK::System::Guts::getFreeQIndex | ( | const State & | , |
Array_< SystemQIndex > & | freeQs | ||
) | const |
void SimTK::System::Guts::getFreeUIndex | ( | const State & | , |
Array_< SystemUIndex > & | freeUs | ||
) | const |
void SimTK::System::Guts::projectQ | ( | State & | , |
Vector & | qErrEst, | ||
const ProjectOptions & | options, | ||
ProjectResults & | results | ||
) | const |
void SimTK::System::Guts::projectU | ( | State & | , |
Vector & | uErrEst, | ||
const ProjectOptions & | options, | ||
ProjectResults & | results | ||
) | const |
void SimTK::System::Guts::handleEvents | ( | State & | , |
Event::Cause | , | ||
const Array_< EventId > & | eventIds, | ||
const HandleEventsOptions & | options, | ||
HandleEventsResults & | results | ||
) | const |
void SimTK::System::Guts::reportEvents | ( | const State & | , |
Event::Cause | , | ||
const Array_< EventId > & | eventIds | ||
) | const |
void SimTK::System::Guts::calcEventTriggerInfo | ( | const State & | , |
Array_< EventTriggerInfo > & | |||
) | const |
void SimTK::System::Guts::calcTimeOfNextScheduledEvent | ( | const State & | , |
Real & | tNextEvent, | ||
Array_< EventId > & | eventIds, | ||
bool | includeCurrentTime | ||
) | const |
void SimTK::System::Guts::calcTimeOfNextScheduledReport | ( | const State & | , |
Real & | tNextEvent, | ||
Array_< EventId > & | eventIds, | ||
bool | includeCurrentTime | ||
) | const |
void SimTK::System::Guts::calcDecorativeGeometryAndAppend | ( | const State & | , |
Stage | , | ||
Array_< DecorativeGeometry > & | |||
) | const |
|
protectedpure virtual |
Implemented in SimTK::ParticleConSurfaceSystemGuts.
|
inlineprotectedvirtual |
Reimplemented in SimTK::ParticleConSurfaceSystemGuts.
|
inlineprotectedvirtual |
Reimplemented in SimTK::ParticleConSurfaceSystemGuts.
|
inlineprotectedvirtual |
Reimplemented in SimTK::ParticleConSurfaceSystemGuts.
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
Reimplemented in SimTK::ParticleConSurfaceSystemGuts.
|
inlineprotectedvirtual |
Reimplemented in SimTK::ParticleConSurfaceSystemGuts.
|
inlineprotectedvirtual |
Reimplemented in SimTK::ParticleConSurfaceSystemGuts.
|
inlineprotectedvirtual |
Reimplemented in SimTK::ParticleConSurfaceSystemGuts.
|
inlineprotectedvirtual |
|
protectedvirtual |
Reimplemented in SimTK::ParticleConSurfaceSystemGuts.
|
protectedvirtual |
Reimplemented in SimTK::ParticleConSurfaceSystemGuts.
|
protectedvirtual |
Reimplemented in SimTK::ParticleConSurfaceSystemGuts.
|
protectedvirtual |
Reimplemented in SimTK::ParticleConSurfaceSystemGuts.
|
inlineprotectedvirtual |
Reimplemented in SimTK::ParticleConSurfaceSystemGuts.
|
inlineprotectedvirtual |
Reimplemented in SimTK::ParticleConSurfaceSystemGuts.
|
inlineprotectedvirtual |
Reimplemented in SimTK::ParticleConSurfaceSystemGuts.
|
inlineprotectedvirtual |
Reimplemented in SimTK::ParticleConSurfaceSystemGuts.
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
friend |