Rod Class Reference

One constraint equation. More...

#include <Constraint.h>

Inheritance diagram for Rod:
Constraint PIMPLHandle< Constraint, ConstraintImpl, true >

List of all members.

Public Member Functions

 Rod (MobilizedBody &body1, MobilizedBody &body2, Real defaultLength=1)
 Rod (MobilizedBody &body1, const Vec3 &defaultPoint1, MobilizedBody &body2, const Vec3 &defaultPoint2, Real defaultLength=1)
RodsetDefaultPointOnBody1 (const Vec3 &)
RodsetDefaultPointOnBody2 (const Vec3 &)
RodsetDefaultRodLength (Real)
MobilizedBodyIndex getBody1MobilizedBodyIndex () const
MobilizedBodyIndex getBody2MobilizedBodyIndex () const
const Vec3getDefaultPointOnBody1 () const
const Vec3getDefaultPointOnBody2 () const
Real getDefaultRodLength () const
const Vec3getPointOnBody1 (const State &) const
const Vec3getPointOnBody2 (const State &) const
Real getRodLength (const State &) const
Real getPositionError (const State &) const
Real getVelocityError (const State &) const
Real getAccelerationError (const State &) const
Real getMultiplier (const State &) const
Real getRodTension (const State &) const
 SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS (Rod, RodImpl, Constraint)

Detailed Description

One constraint equation.

This constraint enforces a constant distance between a point on one body and a point on another body. This is like connecting them by a rigid, massless rod with ball joints at either end. The constraint is enforced by a force acting along the rod with opposite signs at either end. When positive, this represents tension in the rod pulling the points together; when negative it represents compression keeping the points separated.

Caution: you can't use this to enforce a distance of zero between two points. That takes three constraints because there is no restriction on the force direction. For a distance of zero (i.e., you want the points to be coincident) use a Ball constraint, a.k.a. CoincidentPoints constraint.


Constructor & Destructor Documentation

Rod ( MobilizedBody body1,
MobilizedBody body2,
Real  defaultLength = 1 
)
Rod ( MobilizedBody body1,
const Vec3 defaultPoint1,
MobilizedBody body2,
const Vec3 defaultPoint2,
Real  defaultLength = 1 
)

Member Function Documentation

Real getAccelerationError ( const State  )  const
MobilizedBodyIndex getBody1MobilizedBodyIndex (  )  const
MobilizedBodyIndex getBody2MobilizedBodyIndex (  )  const
const Vec3& getDefaultPointOnBody1 (  )  const
const Vec3& getDefaultPointOnBody2 (  )  const
Real getDefaultRodLength (  )  const
Real getMultiplier ( const State  )  const
const Vec3& getPointOnBody1 ( const State  )  const
const Vec3& getPointOnBody2 ( const State  )  const
Real getPositionError ( const State  )  const
Real getRodLength ( const State  )  const
Real getRodTension ( const State  )  const
Real getVelocityError ( const State  )  const
Rod& setDefaultPointOnBody1 ( const Vec3  ) 
Rod& setDefaultPointOnBody2 ( const Vec3  ) 
Rod& setDefaultRodLength ( Real   ) 
SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS ( Rod  ,
RodImpl  ,
Constraint   
)

The documentation for this class was generated from the following file:

Generated on Wed Dec 30 11:05:14 2009 for SimTKcore by  doxygen 1.6.1