This subclass of Joint is used to link two Link objects together using a ball joint.A BallJoint has three degrees of freedom. It can tilt "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).
This joint uses a scheme of 3 Euler angles to represent the relative rotation between two objects. The Z-axis of rotation is automatically derived from the parent link point, meaning that the Z-axis rotation is always a "twist" relative to the link point. The X-axis of rotation is specified by the user with the normal argument. The Y-axis is automatically derived from the other two.
Because of a limitation of the physics engine, the Y-axis rotation is limited to a range of approximately +/- 80 degrees of rotation.
If versions of breve prior to 2.3, there was no normal argument because the axes of rotation were automatically defined. The argument is therefore optional for backwards compatibility only, and should always be specified when writing new code.
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).
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.
Sets the minimum and maximum allowed rotations (in radians) for this joint on all three of the joint's axes.
Sets the desired joint velocity to rotationalVelocity. As a ball joint allows rotation on three axes, rotationalVelocity is a vector.