package org.jbox2d.dynamics.joints; import org.jbox2d.common.Vec2; import org.jbox2d.dynamics.Body; /** * Motor joint definition. * * @author dmurph */ public class MotorJointDef extends JointDef { /** * Position of bodyB minus the position of bodyA, in bodyA's frame, in meters. */ public final Vec2 linearOffset = new Vec2(); /** * The bodyB angle minus bodyA angle in radians. */ public float angularOffset; /** * The maximum motor force in N. */ public float maxForce; /** * The maximum motor torque in N-m. */ public float maxTorque; /** * Position correction factor in the range [0,1]. */ public float correctionFactor; public MotorJointDef() { super(JointType.MOTOR); angularOffset = 0; maxForce = 1; maxTorque = 1; correctionFactor = 0.3f; } public void initialize(Body bA, Body bB) { bodyA = bA; bodyB = bB; Vec2 xB = bodyB.getPosition(); bodyA.getLocalPointToOut(xB, linearOffset); float angleA = bodyA.getAngle(); float angleB = bodyB.getAngle(); angularOffset = angleB - angleA; } }