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.

Joint : BallJoint

Class Description:

This subclass of Joint is used to link two Link objects together using a ball joint.

A universal joint has three degrees of freedom. It can rotate "up-and-down" and "side-to-side", and can "twist". Your neck is basically a ball joint--your head tilt up-and-down, side-to-side, and can twist (although not all the way around--if your head turns all the way around, please consult the user manual for repair).

BallJoints always move in a motion relative to the parent's coordinate frame. So setting the X rotation will cause rotation about the parent's X-axis.

NOTE: this class is included as part of the file "Joint.tz".

Class methods:


get-joint-angles

Returns a vector indicating how the angle of this joint is from its natural position (which corresponds to a values of 0 on all axes).


link parent parentLink (object) to-child childLink (object) with-parent-point parentPoint (vector) with-child-point childPoint (vector)

Creates a ball (rotation on three axes) joint between parentLink and childLink. The joint will be lcoated at parentPoint on the parent's body, and at childPoint on the child's body.

If parentLink is the value 0, then the joint will be attached to a fixed point in the world, specified with parentPoint.


set-joint-limits a1-min min1 (double) a1-max max1 (double) a2-min min2 (double) a2-max max2 (double) a3-min min3 (double) a3-max max3 (double)

Sets the minimum and maximum allowed rotations (in radians) for this joint on all three of the joint's axes.


set-joint-velocity to rotationalVelocity (vector)

Sets the desired joint velocity to rotationalVelocity. As a ball joint allows rotation on three axes, rotationalVelocity is a vector.


Documentation created Tue May 11 10:28:37 2004