1 #ifndef SimTK_SimTKCOMMON_SYSTEM_GUTS_H_     2 #define SimTK_SimTKCOMMON_SYSTEM_GUTS_H_    35 class DecorativeGeometry;
    80                   const String& version=
"0.0.0");
    83     const String& getName()    
const;
    84     const String& getVersion() 
const;
    86     void setHasTimeAdvancedEvents(
bool hasEm);
    87     bool hasTimeAdvancedEvents() 
const;
    95     const State& getDefaultState() 
const;
    96     State&       updDefaultState();
   102     int getNumSubsystems() 
const;
   107     const System& getSystem() 
const;
   110     void setOwnerHandle(
System&);
   111     bool hasOwnerHandle() 
const;
   113     explicit Guts(
class GutsRep* r) : rep(r) { }
   115     const GutsRep& 
getRep()
 const {assert(rep); 
return *rep;}
   116     GutsRep&       
updRep()
 const {assert(rep); 
return *rep;}
   118     bool systemTopologyHasBeenRealized() 
const;
   120     void setSystemTopologyCacheVersion(
StageVersion topoVersion) 
const;
   121     void invalidateSystemTopologyCache() 
const;
   131     const State& realizeTopology() 
const;
   132     void realizeModel(
State&) 
const;
   133     void realizeInstance    (
const State& s) 
const;
   134     void realizeTime        (
const State& s) 
const;
   135     void realizePosition    (
const State& s) 
const;
   136     void realizeVelocity    (
const State& s) 
const;
   137     void realizeDynamics    (
const State& s) 
const;
   138     void realizeAcceleration(
const State& s) 
const;
   139     void realizeReport      (
const State& s) 
const;
   142     void multiplyByN(
const State& state, 
const Vector& u, 
   144     void multiplyByNTranspose(
const State& state, 
const Vector& fq, 
   146     void multiplyByNPInv(
const State& state, 
const Vector& dq, 
   148     void multiplyByNPInvTranspose(
const State& state, 
const Vector& fu, 
   151     bool prescribeQ(
State&) 
const;
   152     bool prescribeU(
State&) 
const;
   167     void calcTimeOfNextScheduledEvent(
const State&, 
Real& tNextEvent, 
Array_<EventId>& eventIds, 
bool includeCurrentTime) 
const;
   168     void calcTimeOfNextScheduledReport(
const State&, 
Real& tNextEvent, 
Array_<EventId>& eventIds, 
bool includeCurrentTime) 
const;
   170     void calcDecorativeGeometryAndAppend(
const State&, 
Stage, 
   200     virtual void multiplyByNImpl(
const State& state, 
const Vector& u, 
   202     virtual void multiplyByNTransposeImpl(
const State& state, 
const Vector& fq, 
   204     virtual void multiplyByNPInvImpl(
const State& state, 
const Vector& dq, 
   206     virtual void multiplyByNPInvTransposeImpl(
const State& state, 
const Vector& fu, 
   223     virtual void handleEventsImpl
   230     virtual int calcEventTriggerInfoImpl(
const State& state, 
   233     virtual int calcTimeOfNextScheduledEventImpl
   235         bool includeCurrentTime) 
const;
   236     virtual int calcTimeOfNextScheduledReportImpl
   238         bool includeCurrentTime) 
const;
   242     virtual void getFreeQIndexImpl
   244         const unsigned nq = (unsigned)s.
getNQ();
   246         for (
unsigned i=0; i<nq; ++i)
   249     virtual void getFreeUIndexImpl
   251         const unsigned nu = (unsigned)s.
getNU();
   253         for (
unsigned i=0; i<nu; ++i)
   260     class EventTriggerInfoRep;
   267 #endif // SimTK_SimTKCOMMON_SYSTEM_GUTS_H_ A Subsystem is expected to be part of a larger System and to have interdependencies with other subsys...
Definition: Subsystem.h:55
 
virtual int realizeTimeImpl(const State &state) const 
Definition: SystemGuts.h:193
 
#define SimTK_SimTKCOMMON_EXPORT
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:218
 
virtual int realizeTopologyImpl(State &state) const 
Definition: SystemGuts.h:190
 
virtual void projectUImpl(State &state, Vector &uErrEst, const ProjectOptions &options, ProjectResults &results) const 
Definition: SystemGuts.h:219
 
int getNU() const 
Get total number of shared u's (generalized speeds; mobilities). 
 
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition: Assembler.h:37
 
void resize(size_type n)
Change the size of this Array, preserving all the elements that will still fit, and default construct...
Definition: Array.h:2053
 
This class is basically a glorified enumerated type, type-safe and range checked but permitting conve...
Definition: Stage.h:50
 
virtual int realizeDynamicsImpl(const State &state) const 
Definition: SystemGuts.h:196
 
virtual int realizeReportImpl(const State &state) const 
Definition: SystemGuts.h:198
 
ProjectResults & clear()
Restore this object to its default-constructed state, with the return status set to Invalid...
Definition: System.h:1089
 
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
 
This object is intended to contain all state information for a SimTK::System, except topological info...
Definition: State.h:276
 
int getNQ() const 
Get total number of shared q's (generalized coordinates; second order state variables). 
 
virtual int realizeAccelerationImpl(const State &state) const 
Definition: SystemGuts.h:197
 
virtual bool prescribeQImpl(State &) const 
Definition: SystemGuts.h:210
 
Results for advanced users of project() methods. 
Definition: System.h:1067
 
These are all the possible causes for events. 
Definition: Event.h:123
 
Options for the advanced project() methods. 
Definition: System.h:950
 
virtual bool prescribeUImpl(State &) const 
Definition: SystemGuts.h:211
 
virtual int realizeVelocityImpl(const State &state) const 
Definition: SystemGuts.h:195
 
The project() was successful either because no projection was necessary or projection was able to ach...
Definition: System.h:1076
 
The SimTK::Array_<T> container class is a plug-compatible replacement for the C++ standard template l...
Definition: Array.h:50
 
This unique integer type is for indexing global "q-like" arrays, that is, arrays that inherently have...
 
virtual int realizePositionImpl(const State &state) const 
Definition: SystemGuts.h:194
 
Guts(class GutsRep *r)
Definition: SystemGuts.h:113
 
GutsRep & updRep() const 
Definition: SystemGuts.h:116
 
ProjectResults & setExitStatus(Status status)
Definition: System.h:1109
 
SimTK::String is a plug-compatible std::string replacement (plus some additional functionality) inten...
Definition: String.h:62
 
Declares the user-visible part of a SimTK::State, the implementation is done in a separate internal c...
 
const GutsRep & getRep() const 
Definition: SystemGuts.h:115
 
This is the declaration for the System::Guts class, the abstract object to which a System handle poin...
Definition: SystemGuts.h:71
 
bool hasRep() const 
Definition: SystemGuts.h:114
 
This is the base class that serves as the parent of all SimTK System objects; most commonly Simbody's...
Definition: System.h:97
 
virtual int realizeInstanceImpl(const State &state) const 
Definition: SystemGuts.h:192
 
Provide a unique integer type for identifying Subsystems. 
 
Results returned by the handleEvent() method. 
Definition: Event.h:342
 
This is the header which should be included in user programs that would like to make use of all the S...
 
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. 
 
virtual int realizeModelImpl(State &state) const 
Definition: SystemGuts.h:191
 
virtual void projectQImpl(State &state, Vector &qErrEst, const ProjectOptions &options, ProjectResults &results) const 
Definition: SystemGuts.h:216
 
int StageVersion
This is the type to use for Stage version numbers. 
Definition: State.h:160
 
Options for the handleEvent() method. 
Definition: Event.h:266