Simbody
3.5
|
This non-holonomic Motion object imposes a constant rate on all mobilities. More...
Public Member Functions | |
Steady (MobilizedBody &mobod, Real u) | |
Create a Motion::Steady where all mobilities have the same velocity. More... | |
template<int N> | |
Steady (MobilizedBody &mobod, const Vec< N > &u) | |
Create a Motion::Steady with different velocities for each mobility specified. More... | |
Steady () | |
Default constructor creates an empty handle than can be assigned to reference any Motion::Steady object. More... | |
Steady & | setDefaultRate (Real u) |
Change the default rate this Motion will prescribe unless overridden in a particular State. More... | |
Steady & | setOneDefaultRate (MobilizerUIndex, Real u) |
Change the default rate this Motion will prescribe for one mobility, unless overridden in a particular State. More... | |
template<int N> | |
Steady & | setDefaultRates (const Vec< N > &u) |
Change the default rates this Motion will prescribe, supplying separate rates for each mobility as a Vec<N>. More... | |
Real | getOneDefaultRate (MobilizerUIndex ux) const |
Get the default rate setting for one mobility. More... | |
void | setRate (State &state, Real u) const |
Change the rate to be prescribed by this Motion when used with the given State. More... | |
void | setOneRate (State &state, MobilizerUIndex ux, Real u) const |
Change the rate this Motion will prescribe for one mobility when used with the given State. More... | |
Real | getOneRate (const State &state, MobilizerUIndex ux) const |
Get the rate setting for one mobility. More... | |
Public Member Functions inherited from SimTK::Motion | |
Motion () | |
Default constructor creates an empty Motion handle that can be assigned to reference any kind of Motion object. More... | |
Level | getLevel (const State &) const |
Get the highest level being driven by this Motion. More... | |
Method | getLevelMethod (const State &) const |
Get the method being used to control the indicated Level. More... | |
void | disable (State &state) const |
Disable this Motion, effectively removing it from the mobilizer to which it belongs and allowing the mobilizer to move freely (unless locked). More... | |
void | enable (State &state) const |
Enable this Motion, without necessarily satisfying it. More... | |
bool | isDisabled (const State &state) const |
Test whether this Motion is currently disabled in the supplied State. More... | |
void | setDisabledByDefault (bool shouldBeDisabled) |
Specify that a Motion is to be inactive by default. More... | |
bool | isDisabledByDefault () const |
Test whether this Motion is disabled by default in which case it must be explicitly enabled before it will take effect. More... | |
const MobilizedBody & | getMobilizedBody () const |
Get the MobilizedBody to which this Motion belongs. More... | |
void | calcAllMethods (const State &s, Method &qMethod, Method &uMethod, Method &udotMethod) const |
(Advanced) This implements the above table. More... | |
Public Member Functions inherited from SimTK::PIMPLHandle< Motion, MotionImpl, true > | |
bool | isEmptyHandle () const |
Returns true if this handle is empty, that is, does not refer to any implementation object. More... | |
bool | isOwnerHandle () const |
Returns true if this handle is the owner of the implementation object to which it refers. More... | |
bool | isSameHandle (const Motion &other) const |
Determine whether the supplied handle is the same object as "this" PIMPLHandle. More... | |
void | disown (Motion &newOwner) |
Give up ownership of the implementation to an empty handle. More... | |
PIMPLHandle & | referenceAssign (const Motion &source) |
"Copy" assignment but with shallow (pointer) semantics. More... | |
PIMPLHandle & | copyAssign (const Motion &source) |
This is real copy assignment, with ordinary C++ object ("value") semantics. More... | |
void | clearHandle () |
Make this an empty handle, deleting the implementation object if this handle is the owner of it. More... | |
const MotionImpl & | getImpl () const |
Get a const reference to the implementation associated with this Handle. More... | |
MotionImpl & | updImpl () |
Get a writable reference to the implementation associated with this Handle. More... | |
int | getImplHandleCount () const |
Return the number of handles the implementation believes are referencing it. More... | |
Additional Inherited Members | |
Public Types inherited from SimTK::Motion | |
enum | Level { NoLevel = -1, Acceleration = 0, Velocity = 1, Position = 2 } |
What is the highest level of motion that is driven? Lower levels are also driven; higher levels are determined by integration. More... | |
enum | Method { NoMethod = -1, Zero = 0, Discrete = 1, Prescribed = 2, Free = 3, Fast = 4 } |
There are several ways to specify the motion at this Level, and the selected method also determines lower-level motions. More... | |
Public Types inherited from SimTK::PIMPLHandle< Motion, MotionImpl, true > | |
typedef PIMPLHandle< Motion, MotionImpl, PTR > | HandleBase |
typedef HandleBase | ParentHandle |
Static Public Member Functions inherited from SimTK::Motion | |
static const char * | nameOfLevel (Level) |
Returns a human-readable name corresponding to the given Level; useful for debugging. More... | |
static const char * | nameOfMethod (Method) |
Returns a human-readable name corresponding to the given Method; useful for debugging. More... | |
Protected Member Functions inherited from SimTK::Motion | |
Motion (MotionImpl *r) | |
For internal use: construct a new Motion handle referencing a particular implementation object. More... | |
Protected Member Functions inherited from SimTK::PIMPLHandle< Motion, MotionImpl, true > | |
PIMPLHandle () | |
The default constructor makes this an empty handle. More... | |
PIMPLHandle (MotionImpl *p) | |
This provides consruction of a handle referencing an existing implementation object. More... | |
PIMPLHandle (const PIMPLHandle &source) | |
The copy constructor makes either a deep (value) or shallow (reference) copy of the supplied source PIMPL object, based on whether this is a "pointer
semantics" (PTR=true) or "object (value) semantics" (PTR=false, default) class. More... | |
~PIMPLHandle () | |
Note that the destructor is non-virtual. More... | |
PIMPLHandle & | operator= (const PIMPLHandle &source) |
Copy assignment makes the current handle either a deep (value) or shallow (reference) copy of the supplied source PIMPL object, based on whether this is a "pointer sematics" (PTR=true) or "object (value) semantics" (PTR=false, default) class. More... | |
void | setImpl (MotionImpl *p) |
Set the implementation for this empty handle. More... | |
bool | hasSameImplementation (const Motion &other) const |
Determine whether the supplied handle is a reference to the same implementation object as is referenced by "this" PIMPLHandle. More... | |
This non-holonomic Motion object imposes a constant rate on all mobilities.
SimTK::Motion::Steady::Steady | ( | MobilizedBody & | mobod, |
Real | u | ||
) |
Create a Motion::Steady where all mobilities have the same velocity.
[in,out] | mobod | the MobilizedBody to which this Motion should be added |
[in] | u | the rate to be applied to all mobilities |
SimTK::Motion::Steady::Steady | ( | MobilizedBody & | mobod, |
const Vec< N > & | u | ||
) |
Create a Motion::Steady with different velocities for each mobility specified.
Any unspecified mobilities will get zero velocity.
[in,out] | mobod | the MobilizedBody to which this Motion should be added |
[in] | u | the rates to be applied to the first N mobilities; the rest are set to zero |
|
inline |
Default constructor creates an empty handle than can be assigned to reference any Motion::Steady object.
Change the default rate this Motion will prescribe unless overridden in a particular State.
All mobilities will use this same rate.
Steady& SimTK::Motion::Steady::setOneDefaultRate | ( | MobilizerUIndex | , |
Real | u | ||
) |
Change the default rate this Motion will prescribe for one mobility, unless overridden in a particular State.
Rates for the other mobilities (if there is more than one) remain unchanged.
Change the default rates this Motion will prescribe, supplying separate rates for each mobility as a Vec<N>.
Real SimTK::Motion::Steady::getOneDefaultRate | ( | MobilizerUIndex | ux | ) | const |
Get the default rate setting for one mobility.
Change the rate to be prescribed by this Motion when used with the given State.
All mobilities will use this same rate.
void SimTK::Motion::Steady::setOneRate | ( | State & | state, |
MobilizerUIndex | ux, | ||
Real | u | ||
) | const |
Change the rate this Motion will prescribe for one mobility when used with the given State.
Rates for the other mobilities (if there is more than one) remain unchanged.
Real SimTK::Motion::Steady::getOneRate | ( | const State & | state, |
MobilizerUIndex | ux | ||
) | const |
Get the rate setting for one mobility.