These pages are auto-generated from self-documenting comments embedded in class files.

For more information on breve and steve, refer to the breve homepage.

Abstract : Joint

Class Description:

Joint is class used to connect two Link objects together. The Joint class itself is actually never instantiated--instead, one of its subclasses should be used.

Although the class itself is never instantiated, the class methods described below are often used with the object's subclasses.

Class methods:

Manipulating Joint Strength

Manipulating Relative Joint Position & Orientation

Breaking Joints

Automatic Joint Scaling


break

Breaks this joint--removes the child (and all of the links connected to it) from the body. The child link (and its descendents) are therefore removed from the world and placed in limbo. They may be reconnected later by creating another Joint, or it may be associated with a MultiBody of its own.

The Joint object is not freed—this has been changed from breve 1.7. By calling this method, you break the joint without releasing it such that it can be used again. If you do not with to use the Joint object again, then simply freeing the Joint object will break the joint and delete the object.


disable-automatic-joint-scaling

Disables automatic joint scaling, if it had previously been enabled using enable-automatic-joint-scaling.


enable-automatic-joint-scaling

Tracks changes to sizes in the link shapes, and automatically "scales" the joint (more accurately, the link points) such that the resized links will maintain the same relative distance from one another. This feature is likely to be desirable whenever "growth" of MultiBody objects is simulated.

This can be later disabled using disable-automatic-joint-scaling.


get-joint-velocity

Returns the scalar velocity of the joint.


get-strength-hard-limit

Returns the "hard" limit of the joint--the maximum torque that you are allowed to put on a single joint.


get-strength-limit

Returns the user set strength limit of the joint.


set-child-link-point to linkPoint (vector)

Dynamically sets the child's link point for this joint. This method can be called over the course of the simulation to change the way the joint works.

If the Joint is not linked, this call has no effect.


set-double-spring with-strength theStrength (float) with-max theMax (float) with-min theMin (float)

Enable this joint's spring to take effect when the rotation is above theMax or below theMin. When the position of the joint is between theMin and theMax, the spring applies no force to the joint. When the position goes out of this range a force is applied according to the strength of the joint (theStrength) and distance to the "natural" range.

To revert to the default behavior of no spring acting on the joint, use the method remove-spring.


set-joint-damping to dampingValue (float)

Sets the joint "damping", which is another way to say the friction of the joint.


set-joint-limit-vectors min minV (vector) max maxV (vector)

A convenience method for setting joint limits for any kind of joint. For 1-DOF joints (prismatic, revolute) only the X values from the vectors are used. For 2-DOF joints (universal), both X and Y values are used. For 3-DOF joints, all the values are used.

Note that this method is just an alternative to the set-joint-limit methods which exist in all of the joints which support limits.


set-joint-normal to normalVector (vector)

If this type of joint supports it (PrismaticJoint and RevoluteJoint), this method sets the normal of motion for the joint.


set-joint-velocity to newVelocity (float)

Sets the joint velocity to newVelocity.


set-parent-link-point to linkPoint (vector)

Dynamically sets the parent's link point for this joint. This method can be called over the course of the simulation to change the way the joint works.

If the Joint is not linked, this call has no effect.


set-relative-rotation around-axis theAxis (vector) by theAngle (float)

This method must be called before linking the joint.

Sets the relative rotation between the child and parent Link to newRotation. This rotation specifies the rotation of the child link when the joint is "relaxed" or at its natural position.

Changing the relative rotation of the joint fundamentally changes the way the joint works, and should not be used as a "normal" joint motion: the relative rotation may be changed dynamically over the course of the simulation, though it may cause unexpected and unrealistic behavior if the change is not made gradually, or if the bodies involved are in contact with other bodies at the time of the change.


set-relative-rotation-matrix to newRotation (matrix)

This method must be called before linking the joint.

Sets the relative rotation between the child and parent Link to newRotation. This rotation specifies the rotation of the child link when the joint is "relaxed" or at its natural position.

The method set-relative-rotation is somewhat easier to use, since it does not require the actual rotation matrix.

Changing the relative rotation of the joint fundamentally changes the way the joint works, and should not be used as a "normal" joint motion: the relative rotation may be changed dynamically over the course of the simulation, though it may cause unexpected and unrealistic behavior if the change is not made gradually, or if the bodies involved are in contact with other bodies at the time of the change.


set-strength-limit to newLimit (float)

Sets the maximum torque to be used by this joint when attempting to attain the target speed.


Documentation created Tue May 11 10:28:37 2004