1 #ifndef SimTK_SIMBODY_CONSTRAINT_H_
2 #define SimTK_SIMBODY_CONSTRAINT_H_
40 class SimbodyMatterSubsystem;
41 class SimbodyMatterSubtree;
49 #ifndef SimTK_SIMBODY_DEFINING_CONSTRAINT
50 extern template class PIMPLHandle<Constraint, ConstraintImpl, true>;
79 void disable(
State&)
const;
87 void enable(
State&)
const;
90 bool isDisabled(
const State&)
const;
94 bool isDisabledByDefault()
const;
100 void setDisabledByDefault(
bool shouldBeDisabled);
129 bool isInSubsystem()
const;
142 int getNumConstrainedBodies()
const;
149 (ConstrainedBodyIndex consBodyIx)
const;
163 int getNumConstrainedMobilizers()
const;
169 const MobilizedBody& getMobilizedBodyFromConstrainedMobilizer
170 (ConstrainedMobilizerIndex consMobilizerIx)
const;
185 int getNumConstrainedQ(
const State&, ConstrainedMobilizerIndex)
const;
190 int getNumConstrainedU(
const State&, ConstrainedMobilizerIndex)
const;
198 ConstrainedUIndex getConstrainedUIndex
206 ConstrainedQIndex getConstrainedQIndex
211 int getNumConstrainedQ(
const State&)
const;
217 int getNumConstrainedU(
const State&)
const;
222 ConstrainedQIndex consQIndex)
const;
226 ConstrainedUIndex consUIndex)
const;
241 void getNumConstraintEquationsInUse(
const State& state,
242 int& mp,
int& mv,
int& ma)
const;
266 void getIndexOfMultipliersInUse(
const State& state,
292 void setMyPartInConstraintSpaceVector(
const State& state,
294 Vector& constraintSpace)
const;
313 void getMyPartFromConstraintSpaceVector(
const State& state,
314 const Vector& constraintSpace,
320 Vector getPositionErrorsAsVector(
const State&)
const;
324 Matrix calcPositionConstraintMatrixP(
const State&)
const;
325 Matrix calcPositionConstraintMatrixPt(
const State&)
const;
328 Matrix calcPositionConstraintMatrixPNInv(
const State&)
const;
345 void calcConstraintForcesFromMultipliers(
const State&,
348 Vector& mobilityForces)
const;
353 Vector getVelocityErrorsAsVector(
const State&)
const;
359 Matrix calcVelocityConstraintMatrixV(
const State&)
const;
360 Matrix calcVelocityConstraintMatrixVt(
const State&)
const;
369 Vector getAccelerationErrorsAsVector(
const State&)
const;
371 const Vector& udot)
const;
390 void getConstraintForcesAsVectors
393 Vector& mobilityForces)
const;
400 getConstraintForcesAsVectors(state,bodyForcesInG,mobilityForces);
401 return bodyForcesInG;
409 getConstraintForcesAsVectors(state,bodyForcesInG,mobilityForces);
410 return mobilityForces;
436 Real calcPower(
const State& state)
const;
440 Matrix calcAccelerationConstraintMatrixA(
const State&)
const;
441 Matrix calcAccelerationConstraintMatrixAt(
const State&)
const;
465 class PointInPlaneImpl;
466 class PointOnLineImpl;
467 class ConstantAngleImpl;
468 class ConstantOrientationImpl;
470 class BallRollingOnPlaneImpl;
471 class ConstantSpeedImpl;
472 class ConstantAccelerationImpl;
474 class CoordinateCouplerImpl;
475 class SpeedCouplerImpl;
476 class PrescribedMotionImpl;
502 Real defaultLength=1);
505 Real defaultLength=1);
511 Rod& setDefaultPointOnBody1(
const Vec3&);
512 Rod& setDefaultPointOnBody2(
const Vec3&);
513 Rod& setDefaultRodLength(Real);
518 const Vec3& getDefaultPointOnBody1()
const;
519 const Vec3& getDefaultPointOnBody2()
const;
520 Real getDefaultRodLength()
const;
523 const Vec3& getPointOnBody1(
const State&)
const;
524 const Vec3& getPointOnBody2(
const State&)
const;
525 Real getRodLength (
const State&)
const;
528 Real getPositionError(
const State&)
const;
529 Real getVelocityError(
const State&)
const;
532 Real getAccelerationError(
const State&)
const;
533 Real getMultiplier(
const State&)
const;
534 Real getRodTension(
const State&)
const;
569 Real getPlaneDisplayHalfWidth()
const;
570 Real getPointDisplayRadius()
const;
581 const UnitVec3& getDefaultPlaneNormal()
const;
582 Real getDefaultPlaneHeight()
const;
583 const Vec3& getDefaultFollowerPoint()
const;
587 Real getPlaneHeight(
const State&)
const;
588 const Vec3& getFollowerPoint(
const State&)
const;
591 Real getPositionError(
const State&)
const;
592 Real getVelocityError(
const State&)
const;
595 Real getAccelerationError(
const State&)
const;
596 Real getMultiplier(
const State&)
const;
597 Real getForceOnFollowerPoint(
const State&)
const;
633 Real getLineDisplayHalfLength()
const;
634 Real getPointDisplayRadius()
const;
645 const UnitVec3& getDefaultLineDirection()
const;
646 const Vec3& getDefaultPointOnLine()
const;
647 const Vec3& getDefaultFollowerPoint()
const;
651 const Vec3& getPointOnLine(
const State&)
const;
652 const Vec3& getFollowerPoint(
const State&)
const;
655 Vec2 getPositionErrors(
const State&)
const;
656 Vec2 getVelocityErrors(
const State&)
const;
659 Vec2 getAccelerationErrors(
const State&)
const;
661 const Vec2& getForceOnFollowerPoint(
const State&)
const;
714 Real getAxisDisplayLength()
const;
715 Real getAxisDisplayWidth()
const;
726 const UnitVec3& getDefaultBaseAxis()
const;
727 const UnitVec3& getDefaultFollowerAxis()
const;
728 Real getDefaultAngle()
const;
733 Real getAngle(
const State&)
const;
736 Real getPositionError(
const State&)
const;
737 Real getVelocityError(
const State&)
const;
740 Real getAccelerationError(
const State&)
const;
741 Real getMultiplier(
const State&)
const;
742 Real getTorqueOnFollowerBody(
const State&)
const;
791 void setPointOnBody1(
State& state,
const Vec3& point_B1)
const;
796 void setPointOnBody2(
State& state,
const Vec3& point_B2)
const;
800 const Vec3& getPointOnBody1(
const State& state)
const;
803 const Vec3& getPointOnBody2(
const State& state)
const;
809 Ball& setDefaultPointOnBody1(
const Vec3& defaultPoint_B1);
814 Ball& setDefaultPointOnBody2(
const Vec3& defaultPoint_B2);
820 const Vec3& getDefaultPointOnBody1()
const;
825 const Vec3& getDefaultPointOnBody2()
const;
830 Ball& setDefaultRadius(Real r);
833 Real getDefaultRadius()
const;
846 Vec3 getPositionErrors(
const State& state)
const;
854 Vec3 getVelocityErrors(
const State& state)
const;
864 Vec3 getAccelerationErrors(
const State&)
const;
869 Vec3 getBallReactionForceOnBody1(
const State&)
const;
873 Vec3 getBallReactionForceOnBody2(
const State&)
const;
882 Vec3 getMultipliers(
const State& state)
const;
929 const Rotation& getDefaultBaseRotation()
const;
930 const Rotation& getDefaultFollowerRotation()
const;
937 Vec3 getPositionErrors(
const State&)
const;
938 Vec3 getVelocityErrors(
const State&)
const;
941 Vec3 getAccelerationErrors(
const State&)
const;
943 Vec3 getTorqueOnFollowerBody(
const State&)
const;
1001 Weld& setAxisDisplayLength(Real r);
1006 Real getAxisDisplayLength()
const;
1016 const Transform& getDefaultFrameOnBody1()
const;
1024 const Transform& getDefaultFrameOnBody2()
const;
1041 Vec6 getPositionErrors(
const State&)
const;
1042 Vec6 getVelocityErrors(
const State&)
const;
1045 Vec6 getAccelerationErrors(
const State&)
const;
1046 Vec6 getMultipliers(
const State&)
const;
1092 void setContactPoint(
State& state,
const Vec3& point_C)
const;
1097 void setDirection(
State& state,
const UnitVec3& direction_C)
const;
1101 const Vec3& getContactPoint(
const State& state)
const;
1112 NoSlip1D& setDirectionDisplayLength(Real);
1115 NoSlip1D& setPointDisplayRadius(Real);
1118 Real getDirectionDisplayLength()
const;
1121 Real getPointDisplayRadius()
const;
1144 const UnitVec3& getDefaultDirection()
const;
1147 const Vec3& getDefaultContactPoint()
const;
1156 Real getVelocityError(
const State& state)
const;
1164 Real getAccelerationError(
const State&)
const;
1172 Real getMultiplier(
const State&)
const;
1177 Real getForceAtContactPoint(
const State&)
const;
1228 const UnitVec3& defaultPlaneNormal_P,
1229 Real defaultPlaneHeight,
1231 const Vec3& defaultBallCenter_B,
1232 Real defaultBallRadius);
1240 Real getPlaneDisplayHalfWidth()
const;
1252 const UnitVec3& getDefaultPlaneNormal()
const;
1253 Real getDefaultPlaneHeight()
const;
1254 const Vec3& getDefaultBallCenter()
const;
1255 Real getDefaultBallRadius()
const;
1259 Real getPlaneHeight(
const State&)
const;
1260 const Vec3& getBallCenter(
const State&)
const;
1261 Real getBallRadius(
const State&)
const;
1264 Real getPositionError(
const State&)
const;
1265 Vec3 getVelocityError(
const State&)
const;
1268 Vec3 getAccelerationError(
const State&)
const;
1269 Vec3 getMultipliers(
const State&)
const;
1274 Real getNormalForce(
const State&)
const;
1277 Vec2 getFrictionForceOnBallInPlaneFrame(
const State&)
const;
1321 Real getDefaultSpeed()
const;
1333 void setSpeed(
State& state, Real speed)
const;
1337 Real getSpeed(
const State& state)
const;
1344 Real getVelocityError(
const State& state)
const;
1350 Real getAccelerationError(
const State& state)
const;
1356 Real getMultiplier(
const State&)
const;
1382 Real defaultAcceleration);
1386 Real defaultAcceleration);
1403 Real getDefaultAcceleration()
const;
1415 void setAcceleration(
State& state, Real accel)
const;
1419 Real getAcceleration(
const State& state)
const;
1427 Real getAccelerationError(
const State&)
const;
1433 Real getMultiplier(
const State&)
const;
1479 class ImplementationImpl;
1496 const Implementation& getImplementation()
const;
1497 Implementation& updImplementation();
1507 #ifndef SimTK_SIMBODY_DEFINING_CONSTRAINT
1509 Constraint::Custom::ImplementationImpl>;
1515 :
public PIMPLHandle<Implementation,ImplementationImpl> {
1552 void invalidateTopologyCache()
const;
1558 Implementation& setDefaultNumConstraintEquations(
int mp,
int mv,
int ma);
1571 ConstrainedBodyIndex addConstrainedBody(
const MobilizedBody&);
1579 ConstrainedMobilizerIndex addConstrainedMobilizer(
const MobilizedBody&);
1586 getMobilizedBodyIndexOfConstrainedBody(ConstrainedBodyIndex)
const;
1593 getMobilizedBodyIndexOfConstrainedMobilizer(ConstrainedMobilizerIndex)
const;
1625 Real getOneQ(
const State& state,
1627 ConstrainedMobilizerIndex mobilizer,
1634 Real getOneQFromState(
const State& state,
1635 ConstrainedMobilizerIndex mobilizer,
1658 Real getOneQDot(
const State& state,
1660 ConstrainedMobilizerIndex mobilizer,
1668 Real getOneQDotFromState(
const State& state,
1669 ConstrainedMobilizerIndex mobilizer,
1696 Real getOneQDotDot(
const State& state,
1698 ConstrainedMobilizerIndex mobilizer,
1718 Real getOneU(
const State& state,
1720 ConstrainedMobilizerIndex mobilizer,
1730 Real getOneUFromState(
const State& state,
1731 ConstrainedMobilizerIndex mobilizer,
1756 Real getOneUDot(
const State& state,
1758 ConstrainedMobilizerIndex mobilizer,
1769 void addInOneMobilityForce
1770 (
const State& state,
1771 ConstrainedMobilizerIndex mobilizer,
1792 (
const State& state,
1793 ConstrainedMobilizerIndex mobilizer,
1817 ConstrainedBodyIndex bodyB)
const;
1822 ConstrainedBodyIndex bodyB)
const
1823 {
return getBodyTransform(allX_AB,bodyB).R(); }
1827 const Vec3& getBodyOriginLocation
1829 ConstrainedBodyIndex bodyB)
const
1830 {
return getBodyTransform(allX_AB,bodyB).p(); }
1837 const Transform& getBodyTransformFromState
1838 (
const State& state, ConstrainedBodyIndex B)
const;
1841 const Rotation& getBodyRotationFromState
1842 (
const State& state, ConstrainedBodyIndex bodyB)
const
1843 {
return getBodyTransformFromState(state,bodyB).R(); }
1847 const Vec3& getBodyOriginLocationFromState
1848 (
const State& state, ConstrainedBodyIndex bodyB)
const
1849 {
return getBodyTransformFromState(state,bodyB).p(); }
1856 ConstrainedBodyIndex bodyB)
const;
1859 const Vec3& getBodyAngularVelocity
1861 ConstrainedBodyIndex bodyB)
const
1862 {
return getBodyVelocity(allV_AB,bodyB)[0]; }
1865 const Vec3& getBodyOriginVelocity
1867 ConstrainedBodyIndex bodyB)
const
1868 {
return getBodyVelocity(allV_AB,bodyB)[1]; }
1876 (
const State& state, ConstrainedBodyIndex bodyB)
const;
1879 const Vec3& getBodyAngularVelocityFromState
1880 (
const State& state, ConstrainedBodyIndex bodyB)
const
1881 {
return getBodyVelocityFromState(state,bodyB)[0]; }
1884 const Vec3& getBodyOriginVelocityFromState
1885 (
const State& state, ConstrainedBodyIndex bodyB)
const
1886 {
return getBodyVelocityFromState(state,bodyB)[1]; }
1895 ConstrainedBodyIndex bodyB)
const;
1898 const Vec3& getBodyAngularAcceleration
1900 ConstrainedBodyIndex bodyB)
const
1901 {
return getBodyAcceleration(allA_AB,bodyB)[0]; }
1904 const Vec3& getBodyOriginAcceleration
1906 ConstrainedBodyIndex bodyB)
const
1907 {
return getBodyAcceleration(allA_AB,bodyB)[1]; }
1917 Vec3 findStationLocation
1919 ConstrainedBodyIndex bodyB,
1920 const Vec3& p_BS)
const
1928 Vec3 findStationLocationFromState
1930 ConstrainedBodyIndex bodyB,
1931 const Vec3& p_BS)
const
1933 const Transform& X_AB = getBodyTransformFromState(state,bodyB);
1943 Vec3 findStationVelocity
1946 ConstrainedBodyIndex bodyB,
1947 const Vec3& p_BS)
const
1949 const Rotation& R_AB = getBodyRotationFromState(state,bodyB);
1950 const Vec3 p_BS_A = R_AB * p_BS;
1952 return V_AB[1] + (V_AB[0] % p_BS_A);
1957 Vec3 findStationVelocityFromState
1959 ConstrainedBodyIndex bodyB,
1960 const Vec3& p_BS)
const
1962 const Rotation& R_AB = getBodyRotationFromState(state,bodyB);
1963 const Vec3 p_BS_A = R_AB * p_BS;
1964 const SpatialVec& V_AB = getBodyVelocityFromState(state,bodyB);
1965 return V_AB[1] + (V_AB[0] % p_BS_A);
1977 Vec3 findStationAcceleration
1980 ConstrainedBodyIndex bodyB,
1981 const Vec3& p_BS)
const
1983 const Rotation& R_AB = getBodyRotationFromState(state,bodyB);
1984 const Vec3 p_BS_A = R_AB * p_BS;
1985 const Vec3& w_AB = getBodyAngularVelocityFromState(state,bodyB);
1990 const Vec3 a_AS = A_AB[1] + (A_AB[0] % p_BS_A)
1991 + w_AB % (w_AB % p_BS_A);
2001 void addInStationForce
2002 (
const State& state,
2003 ConstrainedBodyIndex bodyB,
2005 const Vec3& forceInA,
2010 void addInBodyTorque
2011 (
const State& state,
2012 ConstrainedBodyIndex bodyB,
2013 const Vec3& torqueInA,
2023 void getMultipliers(
const State& state,
2128 virtual void calcPositionErrors
2129 (
const State& state,
2146 virtual void calcPositionDotErrors
2147 (
const State& state,
2165 virtual void calcPositionDotDotErrors
2166 (
const State& state,
2190 virtual void addInPositionConstraintForces
2191 (
const State& state,
2212 virtual void calcVelocityErrors
2213 (
const State& state,
2229 virtual void calcVelocityDotErrors
2230 (
const State& state,
2254 virtual void addInVelocityConstraintForces
2255 (
const State& state,
2279 virtual void calcAccelerationErrors
2280 (
const State& state,
2303 virtual void addInAccelerationConstraintForces
2304 (
const State& state,
2317 virtual void calcDecorativeGeometryAndAppend
2322 friend class Constraint::CustomImpl;
2368 const std::vector<MobilizedBodyIndex>& coordBody,
2369 const std::vector<MobilizerQIndex>& coordIndex)
2423 const std::vector<MobilizedBodyIndex>& speedBody,
2424 const std::vector<MobilizerUIndex>& speedIndex)
2469 const std::vector<MobilizedBodyIndex>& speedBody,
2470 const std::vector<MobilizerUIndex>& speedIndex,
2471 const std::vector<MobilizedBodyIndex>& coordBody,
2472 const std::vector<MobilizerQIndex>& coordIndex)
2527 #endif // SimTK_SIMBODY_CONSTRAINT_H_
virtual void realizeDynamics(const State &) const
The Matter Subsystem's realizeDynamics() method will call this method after any MobilizedBody Dynamic...
Definition: Constraint.h:2097
This is for arrays indexed by mobilized body number within a subsystem (typically the SimbodyMatterSu...
Three constraint equations.
Definition: Constraint.h:909
Unique integer type for Subsystem-local u indexing.
ConstantOrientation()
Default constructor creates an empty handle.
Definition: Constraint.h:917
This is a Constraint that uses a Function to prescribe the behavior of a single generalized coordinat...
Definition: Constraint.h:2495
ConstantAcceleration()
Default constructor creates an empty handle.
Definition: Constraint.h:1389
This class is basically a glorified enumerated type, type-safe and range checked but permitting conve...
Definition: Stage.h:50
A SimbodyMatterSubtree is a view of a connected subgraph of the tree of mobilized bodies in a Simbody...
Definition: SimbodyMatterSubtree.h:109
NoSlip1D()
Default constructor creates an empty handle.
Definition: Constraint.h:1086
SpeedCoupler()
Default constructor creates an empty handle.
Definition: Constraint.h:2482
PrescribedMotion()
Default constructor creates an empty handle.
Definition: Constraint.h:2520
Constrain a single mobility to have a particular speed.
Definition: Constraint.h:1296
Every Simbody header and source file should include this header before any other Simbody header...
Ball()
Default constructor creates an empty handle.
Definition: Constraint.h:785
PointInPlane()
Default constructor creates an empty handle.
Definition: Constraint.h:562
This is the handle class for the hidden State implementation.
Definition: State.h:264
This is for arrays indexed by constraint number within a subsystem (typically the SimbodyMatterSubsys...
ConstantAngle()
Default constructor creates an empty handle.
Definition: Constraint.h:709
virtual void realizeModel(State &) const
The Matter Subsystem's realizeModel() method will call this method after all MobilizedBody Model-stag...
Definition: Constraint.h:2060
The SimTK::Array_<T> container class is a plug-compatible replacement for the C++ standard template l...
Definition: Array.h:50
Six constraint equations.
Definition: Constraint.h:978
#define SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS(DERIVED, DERIVED_IMPL, PARENT)
Definition: PrivateImplementation.h:343
BallRollingOnPlane()
Default constructor creates an empty handle.
Definition: Constraint.h:1235
virtual ~Implementation()
Destructor is virtual so derived classes get a chance to clean up if necessary.
Definition: Constraint.h:1522
Constraint()
Default constructor creates an empty Constraint handle that can be used to reference any Constraint...
Definition: Constraint.h:71
This is a Constraint that uses a Function object to define a nonholonomic (velocity) constraint...
Definition: Constraint.h:2395
One constraint equation.
Definition: Constraint.h:555
virtual void realizeTime(const State &) const
The Matter Subsystem's realizeTime() method will call this method after any MobilizedBody Time-stage ...
Definition: Constraint.h:2074
Unique integer type for Subsystem-local q indexing.
This is a Constraint that uses a Function object to define a single holonomic (position) constraint e...
Definition: Constraint.h:2338
Two constraint equations.
Definition: Constraint.h:619
virtual void realizeVelocity(const State &) const
The Matter Subsystem's realizeVelocity() method will call this method after any MobilizedBody Velocit...
Definition: Constraint.h:2090
CoordinateCoupler(SimbodyMatterSubsystem &matter, const Function *function, const std::vector< MobilizedBodyIndex > &coordBody, const std::vector< MobilizerQIndex > &coordIndex)
For compatibility with std::vector; no copying is done.
Definition: Constraint.h:2367
Rod()
Default constructor creates an empty handle.
Definition: Constraint.h:508
This is the Matrix class intended to appear in user code.
Definition: BigMatrix.h:181
Ball Spherical
Definition: Constraint.h:447
This constraint consists of one constraint equation that enforces a constant distance between a point...
Definition: Constraint.h:498
Enforce that a fixed station on one body remains coincident with a fixed station on a second body...
Definition: Constraint.h:772
PointOnLine()
Default constructor creates an empty handle.
Definition: Constraint.h:626
This Array_ helper class is the base class for ArrayView_ which is the base class for Array_; here we...
Definition: Array.h:48
Weld CoincidentFrames
Definition: Constraint.h:448
virtual void realizeInstance(const State &) const
The Matter Subsystem's realizeInstance() method will call this method after all MobilizedBody Instanc...
Definition: Constraint.h:2067
#define SimTK_SIMBODY_EXPORT
Definition: Simbody/include/simbody/internal/common.h:72
The Mobilizer associated with each MobilizedBody, once modeled, has a specific number of generalized ...
Vector_< SpatialVec > getConstrainedBodyForcesAsVector(const State &state) const
For convenience, returns constrained body forces as the function return.
Definition: Constraint.h:397
A MobilizedBody is Simbody's fundamental body-and-joint object used to parameterize a system's motion...
Definition: MobilizedBody.h:167
virtual void realizeTopology(State &) const
The Matter Subsystem's realizeTopology() method will call this method after all MobilizedBody topolog...
Definition: Constraint.h:2048
This is the base class for all Constraint classes, which is just a handle for the underlying hidden i...
Definition: Constraint.h:66
The handle class Constraint::Custom (dataless) and its companion class Constraint::Custom::Implementa...
Definition: Constraint.h:1476
Constraint(ConstraintImpl *r)
For internal use: construct a new Constraint handle referencing a particular implementation object...
Definition: Constraint.h:74
Weld()
Default constructor creates an empty handle.
Definition: Constraint.h:994
ConstantSpeed()
Default constructor creates an empty handle.
Definition: Constraint.h:1308
Custom()
Default constructor creates an empty handle.
Definition: Constraint.h:1492
This is the abstract base class for the implementation of custom constraints. See Constraint::Custom ...
Definition: Constraint.h:1514
This subsystem contains the bodies ("matter") in the multibody system, the mobilizers (joints) that d...
Definition: SimbodyMatterSubsystem.h:130
Rod ConstantDistance
Definition: Constraint.h:446
This constraint consists of a single constraint equation that enforces that a unit vector v1 fixed to...
Definition: Constraint.h:701
virtual void realizeAcceleration(const State &) const
The Matter Subsystem's realizeAcceleration() method will call this method after any MobilizedBody Acc...
Definition: Constraint.h:2107
Unique integer type for Subsystem-local multiplier indexing.
virtual void realizeReport(const State &) const
The Matter Subsystem's realizeReport() method will call this method after any MobilizedBody Report-st...
Definition: Constraint.h:2114
This constraint enforces continuous contact and non-slip rolling between a spherical surface fixed on...
Definition: Constraint.h:1222
Constrain a single mobility to have a particular acceleration.
Definition: Constraint.h:1375
One non-holonomic constraint equation.
Definition: Constraint.h:1072
virtual void realizePosition(const State &) const
The Matter Subsystem's realizePosition() method will call this method after any MobilizedBody Positio...
Definition: Constraint.h:2082
Vector getConstrainedMobilityForcesAsVector(const State &state) const
For convenience, returns constrained mobility forces as the function return.
Definition: Constraint.h:406
The Mobilizer associated with each MobilizedBody, once modeled, has a specific number of generalized ...
SpeedCoupler(SimbodyMatterSubsystem &matter, const Function *function, const std::vector< MobilizedBodyIndex > &speedBody, const std::vector< MobilizerUIndex > &speedIndex, const std::vector< MobilizedBodyIndex > &coordBody, const std::vector< MobilizerQIndex > &coordIndex)
For compatibility with std::vector; no copying is done.
Definition: Constraint.h:2467
SpeedCoupler(SimbodyMatterSubsystem &matter, const Function *function, const std::vector< MobilizedBodyIndex > &speedBody, const std::vector< MobilizerUIndex > &speedIndex)
For compatibility with std::vector; no copying is done.
Definition: Constraint.h:2421
CoordinateCoupler()
Default constructor creates an empty handle.
Definition: Constraint.h:2377