#include <Constraint.h>
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.
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) | |
Rod & | setDefaultPointOnBody1 (const Vec3 &) |
Rod & | setDefaultPointOnBody2 (const Vec3 &) |
Rod & | setDefaultRodLength (Real) |
MobilizedBodyIndex | getBody1MobilizedBodyIndex () const |
MobilizedBodyIndex | getBody2MobilizedBodyIndex () const |
const Vec3 & | getDefaultPointOnBody1 () const |
const Vec3 & | getDefaultPointOnBody2 () const |
Real | getDefaultRodLength () const |
const Vec3 & | getPointOnBody1 (const State &) const |
const Vec3 & | getPointOnBody2 (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) |
Rod | ( | MobilizedBody & | body1, | |
MobilizedBody & | body2, | |||
Real | defaultLength = 1 | |||
) |
Rod | ( | MobilizedBody & | body1, | |
const Vec3 & | defaultPoint1, | |||
MobilizedBody & | body2, | |||
const Vec3 & | defaultPoint2, | |||
Real | defaultLength = 1 | |||
) |
Rod& setDefaultRodLength | ( | Real | ) |
MobilizedBodyIndex getBody1MobilizedBodyIndex | ( | ) | const |
MobilizedBodyIndex getBody2MobilizedBodyIndex | ( | ) | const |
const Vec3& getDefaultPointOnBody1 | ( | ) | const |
const Vec3& getDefaultPointOnBody2 | ( | ) | const |
Real getDefaultRodLength | ( | ) | 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 | ||||
) |