Box3D 0.1.0
A 3D physics engine for games
Loading...
Searching...
No Matches
Revolute Joint

A revolute joint allows for relative rotation about a single axis with no relative translation. More...

Collaboration diagram for Revolute Joint:

Data Structures

struct  b3RevoluteJointDef
 Revolute joint definition. More...

Functions

b3JointId b3CreateRevoluteJoint (b3WorldId worldId, const b3RevoluteJointDef *def)
 Create a revolute joint.
void b3RevoluteJoint_EnableSpring (b3JointId jointId, bool enableSpring)
 Enable/disable the revolute joint spring.
bool b3RevoluteJoint_IsSpringEnabled (b3JointId jointId)
 Is the revolute angular spring enabled?
void b3RevoluteJoint_SetSpringHertz (b3JointId jointId, float hertz)
 Set the revolute joint spring stiffness in Hertz.
float b3RevoluteJoint_GetSpringHertz (b3JointId jointId)
 Get the revolute joint spring stiffness in Hertz.
void b3RevoluteJoint_SetSpringDampingRatio (b3JointId jointId, float dampingRatio)
 Set the revolute joint spring damping ratio, non-dimensional.
float b3RevoluteJoint_GetSpringDampingRatio (b3JointId jointId)
 Get the revolute joint spring damping ratio, non-dimensional.
void b3RevoluteJoint_SetTargetAngle (b3JointId jointId, float targetRadians)
 Set the revolute joint target angle in radians.
float b3RevoluteJoint_GetTargetAngle (b3JointId jointId)
 Get the revolute joint target angle in radians.
float b3RevoluteJoint_GetAngle (b3JointId jointId)
 Get the revolute joint current angle in radians relative to the reference angle.
void b3RevoluteJoint_EnableLimit (b3JointId jointId, bool enableLimit)
 Enable/disable the revolute joint limit.
bool b3RevoluteJoint_IsLimitEnabled (b3JointId jointId)
 Is the revolute joint limit enabled?
float b3RevoluteJoint_GetLowerLimit (b3JointId jointId)
 Get the revolute joint lower limit in radians.
float b3RevoluteJoint_GetUpperLimit (b3JointId jointId)
 Get the revolute joint upper limit in radians.
void b3RevoluteJoint_SetLimits (b3JointId jointId, float lowerLimitRadians, float upperLimitRadians)
 Set the revolute joint limits in radians.
void b3RevoluteJoint_EnableMotor (b3JointId jointId, bool enableMotor)
 Enable/disable a revolute joint motor.
bool b3RevoluteJoint_IsMotorEnabled (b3JointId jointId)
 Is the revolute joint motor enabled?
void b3RevoluteJoint_SetMotorSpeed (b3JointId jointId, float motorSpeed)
 Set the revolute joint motor speed in radians per second.
float b3RevoluteJoint_GetMotorSpeed (b3JointId jointId)
 Get the revolute joint motor speed in radians per second.
float b3RevoluteJoint_GetMotorTorque (b3JointId jointId)
 Get the revolute joint current motor torque, usually in newton-meters.
void b3RevoluteJoint_SetMaxMotorTorque (b3JointId jointId, float torque)
 Set the revolute joint maximum motor torque, usually in newton-meters.
float b3RevoluteJoint_GetMaxMotorTorque (b3JointId jointId)
 Get the revolute joint maximum motor torque, usually in newton-meters.
b3RevoluteJointDef b3DefaultRevoluteJointDef (void)
 Use this to initialize your joint definition.

Detailed Description

A revolute joint allows for relative rotation about a single axis with no relative translation.

Also called a hinge or pin joint.


Data Structure Documentation

◆ b3RevoluteJointDef

struct b3RevoluteJointDef

Revolute joint definition.

A point on body B is fixed to a point on body A. Allows relative rotation about the z-axis.

Collaboration diagram for b3RevoluteJointDef:
Data Fields
b3JointDef base Base joint definition.
float dampingRatio The spring damping ratio, non-dimensional.
bool enableLimit A flag to enable joint limits.
bool enableMotor A flag to enable the joint motor.
bool enableSpring Enable a rotational spring on the revolute hinge axis.
float hertz The spring stiffness Hertz, cycles per second.
float lowerAngle The lower angle for the joint limit in radians. Minimum of -0.99*pi radians.
float maxMotorTorque The maximum motor torque, typically in newton-meters.
float motorSpeed The desired motor speed in radians per second.
float targetAngle The bodyB angle minus bodyA angle in the reference state (radians).

This defines the zero angle for the joint limit.

float upperAngle The upper angle for the joint limit in radians. Maximum of 0.99*pi radians.

Function Documentation

◆ b3CreateRevoluteJoint()

b3JointId b3CreateRevoluteJoint ( b3WorldId worldId,
const b3RevoluteJointDef * def )

Create a revolute joint.

See also
b3RevoluteJointDef for details

◆ b3RevoluteJoint_GetAngle()

float b3RevoluteJoint_GetAngle ( b3JointId jointId)

Get the revolute joint current angle in radians relative to the reference angle.

See also
b3RevoluteJointDef::referenceAngle