# JointBall Class

This class is used to create ball joints.

## JointBall ()

Constructor. Creates a ball joint with an anchor at the origin of the world coordinates.

## JointBall (const Ptr<Body> & body0, const Ptr<Body> & body1)

Constructor. Creates a ball joint connecting two given bodies. An anchor is placed between centers of mass of the bodies.

### Arguments

• const Ptr<Body> & body0 - The first body to connect with the joint.
• const Ptr<Body> & body1 - The second body to connect with the joint.

## JointBall (const Ptr<Body> & body0, const Ptr<Body> & body1, const Math::Vec3 & anchor)

### Arguments

• const Ptr<Body> & body0
• const Ptr<Body> & body1
• const Math::Vec3 & anchor

## JointBall (const Ptr<Body> & body0, const Ptr<Body> & body1, const Math::Vec3 & anchor, const Math::vec3 & axis)

### Arguments

• const Ptr<Body> & body0
• const Ptr<Body> & body1
• const Math::Vec3 & anchor
• const Math::vec3 & axis

## voidsetAngularLimitTo (float to)

Sets a high twist limit angle. Twist limit specifies how much a connected body can twist around the joint axis.

### Arguments

• float to - Angle in degrees. The provided value will be saturated in the range [-180; 180].

## floatgetAngularLimitAngle ()

Returns the swing limit angle. Swing limit specifies how much connected bodies can bend from the joint axis. 0 means there is no limit.

### Return value

Swing limit angle in degrees.

## floatgetAngularDamping ()

Returns the angular damping of the joint.

Angular damping.

## voidsetAngularLimitAngle (float angle)

Sets a swing limit angle. Swing limit specifies how much connected bodies can bend from the joint axis.

### Arguments

• float angle - Angle in degrees. The provided value will be saturated in the range [0; 180]. 0 means no limit.

## Math::vec3getWorldAxis ()

Returns the joint axis. The joint axis is calculated based on the axes of the connected bodies.

Joint axis.

## voidsetAngularLimitFrom (float from)

Sets a low twist limit angle. Twist limit specifies how much a connected body can twist around the joint axis.

### Arguments

• float from - Angle in degrees. The provided value will be saturated in the range [-180; 180].

## voidsetAngularDamping (float damping)

Sets an angular damping of the joint.

### Arguments

• float damping - Angular damping. If a negative value is provided, 0 will be used instead.

## voidsetAxis0 (const Math::vec3 & axis0)

Sets an axis of the first connected body.

### Arguments

• const Math::vec3 & axis0 - Axis of the first body. The provided vector will be normalized.

## Math::vec3getAxis0 ()

Returns the axis of the first connected body.

### Return value

Axis of the first body.

## Math::vec3getAxis1 ()

Returns the axis of the second connected body.

### Return value

Axis of the second body.

## floatgetAngularLimitTo ()

Returns the high twist limit angle. Twist limit specifies how much a connected body can twist around the joint axis.

### Return value

High twist limit angle in degrees.

## floatgetAngularLimitFrom ()

Returns the low twist limit angle. Twist limit specifies how much a connected body can twist around the joint axis.

### Return value

Low twist limit angle in degrees.

## voidsetAxis1 (const Math::vec3 & axis1)

Sets an axis of the second connected body.

### Arguments

• const Math::vec3 & axis1 - Axis of the second body. The provided vector will be normalized.

## voidsetWorldAxis (const Math::vec3 & axis)

Sets a joint axis. This method updates axes of the connected bodies.

### Arguments

• const Math::vec3 & axis - Joint axis.
Last update: 2017-07-03