| ## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# iODEBallJoint Struct Reference

ODE ball and socket joint (contrainted translation and free rotation). More...

`#include <ivaria/ode.h>`

Inheritance diagram for iODEBallJoint:

[legend]
List of all members.

## Public Member Functions
virtual void | Attach (iRigidBody *body1, iRigidBody *body2)=0
| Attach the joint to some new bodies.
virtual csVector3 | GetAnchorError ()=0
| This value will show you how far the joint has come apart.
virtual csRef< iRigidBody > | GetAttachedBody (int body)=0
| Get an attached body (valid values for body are 0 and 1).
virtual csVector3 | GetBallAnchor1 ()=0
| Get the joint anchor point, in world coordinates.
virtual csVector3 | GetBallAnchor2 ()=0
| Get the joint anchor point, in world coordinates.
virtual csVector3 | GetFeedbackForce1 ()=0
| Get force that joint applies to body 1.
virtual csVector3 | GetFeedbackForce2 ()=0
| Get force that joint applies to body 2.
virtual csVector3 | GetFeedbackTorque1 ()=0
| Get torque that joint applies to body 1.
virtual csVector3 | GetFeedbackTorque2 ()=0
| Get torque that joint applies to body 2.
virtual void | SetBallAnchor (const csVector3 &pos)=0
| Set the joint anchor point.

## Detailed Description

ODE ball and socket joint (contrainted translation and free rotation).

Definition at line 882 of file ode.h.

## Member Function Documentation

virtual void iODEBallJoint::Attach | ( | iRigidBody * | body1,
|  | iRigidBody * | body2 |
| ) |  |  | `[pure virtual]`

Attach the joint to some new bodies.

If the joint is already attached, it will be detached from the old bodies first. To attach this joint to only one body, set body1 or body2 to zero - a zero body refers to the static environment. Setting both bodies to zero puts the joint into "limbo", i.e. it will have no effect on the simulation.

virtual csVector3 iODEBallJoint::GetAnchorError | ( |  | ) | `[pure virtual]`

This value will show you how far the joint has come apart.

virtual csRef<iRigidBody> iODEBallJoint::GetAttachedBody | ( | int | body | ) | `[pure virtual]`

Get an attached body (valid values for body are 0 and 1).

virtual csVector3 iODEBallJoint::GetBallAnchor1 | ( |  | ) | `[pure virtual]`

Get the joint anchor point, in world coordinates.

This returns the point on body 1.

virtual csVector3 iODEBallJoint::GetBallAnchor2 | ( |  | ) | `[pure virtual]`

Get the joint anchor point, in world coordinates.

This returns the point on body 2.

virtual csVector3 iODEBallJoint::GetFeedbackForce1 | ( |  | ) | `[pure virtual]`

Get force that joint applies to body 1.

virtual csVector3 iODEBallJoint::GetFeedbackForce2 | ( |  | ) | `[pure virtual]`

Get force that joint applies to body 2.

virtual csVector3 iODEBallJoint::GetFeedbackTorque1 | ( |  | ) | `[pure virtual]`

Get torque that joint applies to body 1.

virtual csVector3 iODEBallJoint::GetFeedbackTorque2 | ( |  | ) | `[pure virtual]`

Get torque that joint applies to body 2.

virtual void iODEBallJoint::SetBallAnchor | ( | const csVector3 & | pos | ) | `[pure virtual]`

Set the joint anchor point.

The joint will try to keep this point on each body together. Input specified in world coordinates.

The documentation for this struct was generated from the following file:

- ivaria/ode.h