|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jbox2d.dynamics.joints.Joint
org.jbox2d.dynamics.joints.PrismaticJoint
public class PrismaticJoint
A prismatic joint. This joint provides one degree of freedom: translation along an axis fixed in bodyA. Relative rotation is prevented. You can use a joint limit to restrict the range of motion and a joint motor to drive the motion or to model joint friction.
Field Summary | |
---|---|
float |
m_a1
|
float |
m_a2
|
Vec2 |
m_axis
|
boolean |
m_enableLimit
|
boolean |
m_enableMotor
|
Vec3 |
m_impulse
|
int |
m_indexA
|
int |
m_indexB
|
float |
m_invIA
|
float |
m_invIB
|
float |
m_invMassA
|
float |
m_invMassB
|
Mat33 |
m_K
|
LimitState |
m_limitState
|
Vec2 |
m_localAnchorA
|
Vec2 |
m_localAnchorB
|
Vec2 |
m_localCenterA
|
Vec2 |
m_localCenterB
|
Vec2 |
m_localXAxisA
|
Vec2 |
m_localYAxisA
|
float |
m_lowerTranslation
|
float |
m_maxMotorForce
|
float |
m_motorImpulse
|
float |
m_motorMass
|
float |
m_motorSpeed
|
Vec2 |
m_perp
|
Vec2 |
m_rA
|
Vec2 |
m_rB
|
float |
m_referenceAngle
|
float |
m_s1
|
float |
m_s2
|
float |
m_upperTranslation
|
Fields inherited from class org.jbox2d.dynamics.joints.Joint |
---|
m_bodyA, m_bodyB, m_collideConnected, m_edgeA, m_edgeB, m_index, m_islandFlag, m_next, m_prev, m_type, m_userData, pool |
Constructor Summary | |
---|---|
PrismaticJoint(IWorldPool argWorld,
PrismaticJointDef def)
|
Method Summary | |
---|---|
void |
enableLimit(boolean flag)
Enable/disable the joint limit. |
void |
enableMotor(boolean flag)
Enable/disable the joint motor. |
void |
getAnchorA(Vec2 argOut)
get the anchor point on bodyA in world coordinates. |
void |
getAnchorB(Vec2 argOut)
get the anchor point on bodyB in world coordinates. |
float |
getJointSpeed()
Get the current joint translation, usually in meters. public float getJointTranslation() { Vec2 pA = pool.popVec2(); Vec2 pB = pool.popVec2(); Vec2 axis = pool.popVec2(); m_bodyA.getWorldPointToOut(m_localAnchorA, pA); m_bodyB.getWorldPointToOut(m_localAnchorB, pB); pB.subLocal(pA); m_bodyA.getWorldVectorToOut(m_localXAxisA, axis); float translation = Vec2.dot(pB, axis); pool.pushVec2(3); return translation; } /** Get the current joint translation speed, usually in meters per second. |
Vec2 |
getLocalAnchorA()
|
Vec2 |
getLocalAnchorB()
|
float |
getLowerLimit()
Get the lower joint limit, usually in meters. |
float |
getMotorForce(float inv_dt)
Get the current motor force, usually in N. |
float |
getMotorSpeed()
Get the motor speed, usually in meters per second. |
void |
getReactionForce(float inv_dt,
Vec2 argOut)
get the reaction force on body2 at the joint anchor in Newtons. |
float |
getReactionTorque(float inv_dt)
get the reaction torque on body2 in N*m. |
float |
getUpperLimit()
Get the upper joint limit, usually in meters. |
void |
initVelocityConstraints(SolverData data)
|
boolean |
isLimitEnabled()
Is the joint limit enabled? |
boolean |
isMotorEnabled()
Is the joint motor enabled? |
void |
setLimits(float lower,
float upper)
Set the joint limits, usually in meters. |
void |
setMaxMotorForce(float force)
Set the maximum motor force, usually in N. |
void |
setMotorSpeed(float speed)
Set the motor speed, usually in meters per second. |
boolean |
solvePositionConstraints(SolverData data)
This returns true if the position errors are within tolerance. |
void |
solveVelocityConstraints(SolverData data)
|
Methods inherited from class org.jbox2d.dynamics.joints.Joint |
---|
create, destroy, destructor, getBodyA, getBodyB, getCollideConnected, getNext, getType, getUserData, IsActive, setUserData |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public final Vec2 m_localAnchorA
public final Vec2 m_localAnchorB
public final Vec2 m_localXAxisA
public final Vec2 m_localYAxisA
public float m_referenceAngle
public final Vec3 m_impulse
public float m_motorImpulse
public float m_lowerTranslation
public float m_upperTranslation
public float m_maxMotorForce
public float m_motorSpeed
public boolean m_enableLimit
public boolean m_enableMotor
public LimitState m_limitState
public int m_indexA
public int m_indexB
public final Vec2 m_rA
public final Vec2 m_rB
public final Vec2 m_localCenterA
public final Vec2 m_localCenterB
public float m_invMassA
public float m_invMassB
public float m_invIA
public float m_invIB
public final Vec2 m_axis
public final Vec2 m_perp
public float m_s1
public float m_s2
public float m_a1
public float m_a2
public final Mat33 m_K
public float m_motorMass
Constructor Detail |
---|
public PrismaticJoint(IWorldPool argWorld, PrismaticJointDef def)
Method Detail |
---|
public Vec2 getLocalAnchorA()
public Vec2 getLocalAnchorB()
public void getAnchorA(Vec2 argOut)
Joint
getAnchorA
in class Joint
public void getAnchorB(Vec2 argOut)
Joint
getAnchorB
in class Joint
public void getReactionForce(float inv_dt, Vec2 argOut)
Joint
getReactionForce
in class Joint
public float getReactionTorque(float inv_dt)
Joint
getReactionTorque
in class Joint
public float getJointSpeed()
public boolean isLimitEnabled()
public void enableLimit(boolean flag)
flag
- public float getLowerLimit()
public float getUpperLimit()
public void setLimits(float lower, float upper)
lower
- upper
- public boolean isMotorEnabled()
public void enableMotor(boolean flag)
flag
- public void setMotorSpeed(float speed)
speed
- public float getMotorSpeed()
public void setMaxMotorForce(float force)
force
- public float getMotorForce(float inv_dt)
inv_dt
-
public void initVelocityConstraints(SolverData data)
initVelocityConstraints
in class Joint
public void solveVelocityConstraints(SolverData data)
solveVelocityConstraints
in class Joint
public boolean solvePositionConstraints(SolverData data)
Joint
solvePositionConstraints
in class Joint
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |