Simbody
|
This is the declaration for the System::Guts class, the abstract object to which a System handle points. More...
#include <SystemGuts.h>
Public Member Functions | |
Guts (const String &name="<NONAME>", const String &version="0.0.0") | |
virtual | ~Guts () |
const String & | getName () const |
const String & | getVersion () const |
void | setHasTimeAdvancedEvents (bool hasEm) |
bool | hasTimeAdvancedEvents () const |
const State & | getDefaultState () const |
State & | updDefaultState () |
void | realize (const State &s, Stage g=Stage::HighestRuntime) const |
SubsystemIndex | adoptSubsystem (Subsystem &child) |
int | getNumSubsystems () const |
const Subsystem & | getSubsystem (SubsystemIndex) const |
Subsystem & | updSubsystem (SubsystemIndex) |
const System & | getSystem () const |
System & | updSystem () |
void | setOwnerHandle (System &) |
bool | hasOwnerHandle () const |
Guts (class GutsRep *r) | |
bool | hasRep () const |
const GutsRep & | getRep () const |
GutsRep & | updRep () const |
bool | systemTopologyHasBeenRealized () const |
void | invalidateSystemTopologyCache () const |
System::Guts * | clone () const |
const State & | realizeTopology () const |
void | realizeModel (State &) const |
void | realizeInstance (const State &s) const |
void | realizeTime (const State &s) const |
void | realizePosition (const State &s) const |
void | realizeVelocity (const State &s) const |
void | realizeDynamics (const State &s) const |
void | realizeAcceleration (const State &s) const |
void | realizeReport (const State &s) const |
Real | calcTimescale (const State &) const |
void | calcYUnitWeights (const State &, Vector &weights) const |
void | prescribe (State &, Stage) const |
void | project (State &, Real consAccuracy, const Vector &yweights, const Vector &ootols, Vector &yerrest, System::ProjectOptions) const |
void | calcYErrUnitTolerances (const State &, Vector &tolerances) const |
void | handleEvents (State &, Event::Cause, const Array_< EventId > &eventIds, Real accuracy, const Vector &yWeights, const Vector &ooConstraintTols, Stage &lowestModified, bool &shouldTerminate) const |
void | reportEvents (const State &, Event::Cause, const Array_< EventId > &eventIds) const |
void | calcEventTriggerInfo (const State &, Array_< EventTriggerInfo > &) const |
void | calcTimeOfNextScheduledEvent (const State &, Real &tNextEvent, Array_< EventId > &eventIds, bool includeCurrentTime) const |
void | calcTimeOfNextScheduledReport (const State &, Real &tNextEvent, Array_< EventId > &eventIds, bool includeCurrentTime) const |
void | calcDecorativeGeometryAndAppend (const State &, Stage, Array_< DecorativeGeometry > &) const |
Protected Member Functions | |
Guts (const Guts &) | |
virtual System::Guts * | cloneImpl () const =0 |
virtual int | realizeTopologyImpl (State &) const |
virtual int | realizeModelImpl (State &) const |
virtual int | realizeInstanceImpl (const State &) const |
virtual int | realizeTimeImpl (const State &) const |
virtual int | realizePositionImpl (const State &) const |
virtual int | realizeVelocityImpl (const State &) const |
virtual int | realizeDynamicsImpl (const State &) const |
virtual int | realizeAccelerationImpl (const State &) const |
virtual int | realizeReportImpl (const State &) const |
virtual Real | calcTimescaleImpl (const State &) const |
virtual int | calcYUnitWeightsImpl (const State &, Vector &weights) const |
virtual int | prescribeImpl (State &, Stage) const |
virtual int | projectImpl (State &, Real consAccuracy, const Vector &yweights, const Vector &ootols, Vector &yerrest, System::ProjectOptions) const |
virtual int | calcYErrUnitTolerancesImpl (const State &, Vector &tolerances) const |
virtual int | handleEventsImpl (State &, Event::Cause, const Array_< EventId > &eventIds, Real accuracy, const Vector &yWeights, const Vector &ooConstraintTols, Stage &lowestModified, bool &shouldTerminate) const |
virtual int | reportEventsImpl (const State &, Event::Cause, const Array_< EventId > &eventIds) const |
virtual int | calcEventTriggerInfoImpl (const State &, Array_< EventTriggerInfo > &) const |
virtual int | calcTimeOfNextScheduledEventImpl (const State &, Real &tNextEvent, Array_< EventId > &eventIds, bool includeCurrentTime) const |
virtual int | calcTimeOfNextScheduledReportImpl (const State &, Real &tNextEvent, Array_< EventId > &eventIds, bool includeCurrentTime) 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 compatiblity, 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 the SimTK Core, then the System author should expose only the data-free handle class derived from System.
SimTK::System::Guts::Guts | ( | const String & | name = "<NONAME>" , |
const String & | version = "0.0.0" |
||
) | [explicit] |
virtual SimTK::System::Guts::~Guts | ( | ) | [virtual] |
SimTK::System::Guts::Guts | ( | class GutsRep * | r | ) | [inline, explicit] |
SimTK::System::Guts::Guts | ( | const Guts & | ) | [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 |
bool SimTK::System::Guts::hasRep | ( | ) | const [inline] |
const GutsRep& SimTK::System::Guts::getRep | ( | ) | const [inline] |
GutsRep& SimTK::System::Guts::updRep | ( | ) | const [inline] |
bool SimTK::System::Guts::systemTopologyHasBeenRealized | ( | ) | 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 |
Real SimTK::System::Guts::calcTimescale | ( | const State & | ) | const |
void SimTK::System::Guts::project | ( | State & | , |
Real | consAccuracy, | ||
const Vector & | yweights, | ||
const Vector & | ootols, | ||
Vector & | yerrest, | ||
System::ProjectOptions | |||
) | const |
void SimTK::System::Guts::handleEvents | ( | State & | , |
Event::Cause | , | ||
const Array_< EventId > & | eventIds, | ||
Real | accuracy, | ||
const Vector & | yWeights, | ||
const Vector & | ooConstraintTols, | ||
Stage & | lowestModified, | ||
bool & | shouldTerminate | ||
) | 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 |
virtual System::Guts* SimTK::System::Guts::cloneImpl | ( | ) | const [protected, pure virtual] |
virtual int SimTK::System::Guts::realizeTopologyImpl | ( | State & | ) | const [protected, virtual] |
virtual int SimTK::System::Guts::realizeModelImpl | ( | State & | ) | const [protected, virtual] |
virtual int SimTK::System::Guts::realizeInstanceImpl | ( | const State & | ) | const [protected, virtual] |
virtual int SimTK::System::Guts::realizeTimeImpl | ( | const State & | ) | const [protected, virtual] |
virtual int SimTK::System::Guts::realizePositionImpl | ( | const State & | ) | const [protected, virtual] |
virtual int SimTK::System::Guts::realizeVelocityImpl | ( | const State & | ) | const [protected, virtual] |
virtual int SimTK::System::Guts::realizeDynamicsImpl | ( | const State & | ) | const [protected, virtual] |
virtual int SimTK::System::Guts::realizeAccelerationImpl | ( | const State & | ) | const [protected, virtual] |
virtual int SimTK::System::Guts::realizeReportImpl | ( | const State & | ) | const [protected, virtual] |
virtual Real SimTK::System::Guts::calcTimescaleImpl | ( | const State & | ) | const [protected, virtual] |
virtual int SimTK::System::Guts::calcYUnitWeightsImpl | ( | const State & | , |
Vector & | weights | ||
) | const [protected, virtual] |
virtual int SimTK::System::Guts::projectImpl | ( | State & | , |
Real | consAccuracy, | ||
const Vector & | yweights, | ||
const Vector & | ootols, | ||
Vector & | yerrest, | ||
System::ProjectOptions | |||
) | const [protected, virtual] |
virtual int SimTK::System::Guts::calcYErrUnitTolerancesImpl | ( | const State & | , |
Vector & | tolerances | ||
) | const [protected, virtual] |
virtual int SimTK::System::Guts::handleEventsImpl | ( | State & | , |
Event::Cause | , | ||
const Array_< EventId > & | eventIds, | ||
Real | accuracy, | ||
const Vector & | yWeights, | ||
const Vector & | ooConstraintTols, | ||
Stage & | lowestModified, | ||
bool & | shouldTerminate | ||
) | const [protected, virtual] |
virtual int SimTK::System::Guts::reportEventsImpl | ( | const State & | , |
Event::Cause | , | ||
const Array_< EventId > & | eventIds | ||
) | const [protected, virtual] |
virtual int SimTK::System::Guts::calcEventTriggerInfoImpl | ( | const State & | , |
Array_< EventTriggerInfo > & | |||
) | const [protected, virtual] |
virtual int SimTK::System::Guts::calcTimeOfNextScheduledEventImpl | ( | const State & | , |
Real & | tNextEvent, | ||
Array_< EventId > & | eventIds, | ||
bool | includeCurrentTime | ||
) | const [protected, virtual] |
virtual int SimTK::System::Guts::calcTimeOfNextScheduledReportImpl | ( | const State & | , |
Real & | tNextEvent, | ||
Array_< EventId > & | eventIds, | ||
bool | includeCurrentTime | ||
) | const [protected, virtual] |
friend class GutsRep [friend] |