C# Class Project290.Physics.Dynamics.Joints.RevoluteJoint

A revolute joint rains to bodies to share a common point while they are free to rotate about the point. The relative rotation about the shared point is the joint angle. You can limit the relative rotation with a joint limit that specifies a lower and upper angle. You can use a motor to drive the relative rotation about the shared point. A maximum motor torque is provided so that infinite forces are not generated.
Inheritance: Joint
Show file Open project: scastle/Solitude Class Usage Examples

Public Properties

Property Type Description
LocalAnchorA Vector2
LocalAnchorB Vector2

Public Methods

Method Description
GetReactionForce ( float inv_dt ) : Vector2
GetReactionTorque ( float inv_dt ) : float
RevoluteJoint ( Body bodyA, Body bodyB, Vector2 localAnchorA, Vector2 localAnchorB ) : System

Initialize the bodies and local anchor. This requires defining an anchor point where the bodies are joined. The definition uses local anchor points so that the initial configuration can violate the constraint slightly. You also need to specify the initial relative angle for joint limits. This helps when saving and loading a game. The local anchor points are measured from the body's origin rather than the center of mass because: 1. you might not know where the center of mass will be. 2. if you add/remove shapes from a body and recompute the mass, the joints will be broken.

Private Methods

Method Description
InitVelocityConstraints ( TimeStep &step ) : void
SolvePositionConstraints ( ) : bool
SolveVelocityConstraints ( TimeStep &step ) : void

Method Details

GetReactionForce() public method

public GetReactionForce ( float inv_dt ) : Vector2
inv_dt float
return Vector2

GetReactionTorque() public method

public GetReactionTorque ( float inv_dt ) : float
inv_dt float
return float

RevoluteJoint() public method

Initialize the bodies and local anchor. This requires defining an anchor point where the bodies are joined. The definition uses local anchor points so that the initial configuration can violate the constraint slightly. You also need to specify the initial relative angle for joint limits. This helps when saving and loading a game. The local anchor points are measured from the body's origin rather than the center of mass because: 1. you might not know where the center of mass will be. 2. if you add/remove shapes from a body and recompute the mass, the joints will be broken.
public RevoluteJoint ( Body bodyA, Body bodyB, Vector2 localAnchorA, Vector2 localAnchorB ) : System
bodyA Body The first body.
bodyB Body The second body.
localAnchorA Vector2 The first body anchor.
localAnchorB Vector2 The second anchor.
return System

Property Details

LocalAnchorA public property

public Vector2 LocalAnchorA
return Vector2

LocalAnchorB public property

public Vector2 LocalAnchorB
return Vector2