| ## Public API Reference

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

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

# iODEUniversalJoint Struct Reference

A universal joint is like a ball and socket joint that constrains an extra degree of rotational freedom. More...

`#include <ivaria/ode.h>`

Inheritance diagram for iODEUniversalJoint:

[legend]
List of all members.

## Public Member Functions
virtual csVector3 | GetUniversalAnchor1 ()=0
| Get the joint anchor point, in world coordinates.
virtual csVector3 | GetUniversalAnchor2 ()=0
| Get the joint anchor point, in world coordinates.
virtual csVector3 | GetUniversalAxis1 ()=0
| Get universal axis on body 1.
virtual csVector3 | GetUniversalAxis2 ()=0
| Get universal axis on body 2.
virtual void | SetUniversalAnchor (float x, float y, float z)=0
| Set universal anchor.
virtual void | SetUniversalAxis1 (float x, float y, float z)=0
| Set axis on body 1 (should be perpendicular to axis 2).
virtual void | SetUniversalAxis2 (float x, float y, float z)=0
| Set axis on body 2 (should be perpendicular to axis 1).

## Detailed Description

A universal joint is like a ball and socket joint that constrains an extra degree of rotational freedom.

Given axis 1 on body 1, and axis 2 on body 2 that is perpendicular to axis 1, it keeps them perpendicular. In other words, rotation of the two bodies about the direction perpendicular to the two axes will be equal.

Definition at line 602 of file ode.h.

## Member Function Documentation

virtual csVector3 iODEUniversalJoint::GetUniversalAnchor1 | ( |  | ) | `[pure virtual]`

Get the joint anchor point, in world coordinates.

This returns the point on body 1. If the joint is perfectly satisfied, this will be the same as the point on body 2.

virtual csVector3 iODEUniversalJoint::GetUniversalAnchor2 | ( |  | ) | `[pure virtual]`

Get the joint anchor point, in world coordinates.

This returns the point on body 2. If the joint is perfectly satisfied, this will be the same as the point on body 1.

virtual csVector3 iODEUniversalJoint::GetUniversalAxis1 | ( |  | ) | `[pure virtual]`

Get universal axis on body 1.

virtual csVector3 iODEUniversalJoint::GetUniversalAxis2 | ( |  | ) | `[pure virtual]`

Get universal axis on body 2.

virtual void iODEUniversalJoint::SetUniversalAnchor | ( | float | x,
|  | float | y,
|  | float | z |
| ) |  |  | `[pure virtual]`

Set universal anchor.

virtual void iODEUniversalJoint::SetUniversalAxis1 | ( | float | x,
|  | float | y,
|  | float | z |
| ) |  |  | `[pure virtual]`

Set axis on body 1 (should be perpendicular to axis 2).

virtual void iODEUniversalJoint::SetUniversalAxis2 | ( | float | x,
|  | float | y,
|  | float | z |
| ) |  |  | `[pure virtual]`

Set axis on body 2 (should be perpendicular to axis 1).

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

- ivaria/ode.h