1 #ifndef SimTK_SIMBODY_MOTION_H_
2 #define SimTK_SIMBODY_MOTION_H_
36 class SimbodyMatterSubsystem;
44 #ifndef SimTK_SIMBODY_DEFINING_MOTION
45 extern template class PIMPLHandle<Motion, MotionImpl, true>;
121 static const char* nameOfLevel(Level);
137 static const char* nameOfMethod(Method);
146 Level getLevel(
const State&)
const;
150 Method getLevelMethod(
const State&)
const;
173 void disable(
State& state)
const;
184 void enable(
State& state)
const;
187 bool isDisabled(
const State& state)
const;
193 void setDisabledByDefault(
bool shouldBeDisabled);
198 bool isDisabledByDefault()
const;
212 void calcAllMethods(
const State& s, Method& qMethod, Method& uMethod,
213 Method& udotMethod)
const;
225 class PolynomialImpl;
298 Steady& setDefaultRate(
Real u);
306 Steady& setDefaultRates(
const Vec<N>& u);
313 void setRate(
State& state,
Real u)
const;
382 const Implementation& getImplementation()
const;
383 Implementation& updImplementation();
401 "Motion::Custom::Implementation::clone()",
402 "Concrete Implementation did not supply a clone() method, "
403 "but a copy operation was attempted.");
434 virtual void calcPrescribedPosition
448 virtual void calcPrescribedPositionDot
449 (
const State& s,
int nq,
Real* qdot)
const;
463 virtual void calcPrescribedPositionDotDot
464 (
const State& s,
int nq,
Real* qdotdot)
const;
480 virtual void calcPrescribedVelocity
493 virtual void calcPrescribedVelocityDot
494 (
const State& s,
int nu,
Real* udot)
const;
510 virtual void calcPrescribedAcceleration
511 (
const State& s,
int nu,
Real* udot)
const;
535 #endif // SimTK_SIMBODY_MOTION_H_