/** Get the motor speed, usually in meters per second. */ public float getMotorSpeed () { return joint.getMotorSpeed(); }
/** Is the joint limit enabled? */ public boolean isLimitEnabled () { return joint.isLimitEnabled(); }
/** Is the joint motor enabled? */ public boolean isMotorEnabled () { return joint.isMotorEnabled(); }
PrismaticJoint j = (PrismaticJoint) joint; builder.setType(PbJointType.PRISMATIC); builder.setLocalAnchorA(vecToPb(j.getLocalAnchorA())); builder.setLocalAnchorB(vecToPb(j.getLocalAnchorB())); builder.setLocalAxisA(vecToPb(j.getLocalAxisA())); builder.setRefAngle(j.getReferenceAngle()); builder.setEnableLimit(j.isLimitEnabled()); builder.setLowerLimit(j.getLowerLimit()); builder.setUpperLimit(j.getUpperLimit()); builder.setEnableMotor(j.isMotorEnabled()); builder.setMaxMotorForce(j.getMaxMotorForce()); builder.setMotorSpeed(j.getMotorSpeed()); break;
@Override public void keyPressed(char argKeyChar, int argKeyCode) { switch (argKeyChar) { case 'l': m_joint.enableLimit(!m_joint.isLimitEnabled()); getModel().getKeys()['l'] = false; break; case 'm': m_joint.enableMotor(!m_joint.isMotorEnabled()); getModel().getKeys()['m'] = false; break; case 's': m_joint.setMotorSpeed(-m_joint.getMotorSpeed()); getModel().getKeys()['s'] = false; break; } }
return new DistanceJoint(world.getPool(), (DistanceJointDef) def); case PRISMATIC: return new PrismaticJoint(world.getPool(), (PrismaticJointDef) def); case REVOLUTE: return new RevoluteJoint(world.getPool(), (RevoluteJointDef) def);
@Override public void keyPressed(char argKeyChar, int argKeyCode) { switch (argKeyChar) { case 'f': m_joint2.enableMotor(!m_joint2.isMotorEnabled()); getModel().getKeys()['f'] = false; break; case 'm': m_joint1.enableMotor(!m_joint1.isMotorEnabled()); getModel().getKeys()['m'] = false; break; } }
/** Get the current joint translation, usually in meters. */ public float getJointTranslation () { return joint.getJointTranslation(); }
/** Enable/disable the joint motor. */ public void enableMotor (boolean flag) { joint.enableMotor(flag); }
/** Enable/disable the joint limit. */ public void enableLimit (boolean flag) { joint.enableLimit(flag); }
public Vector2 getLocalAnchorA () { Vec2 localAnchor = joint.getLocalAnchorA(); localAnchorA.set(localAnchor.x, localAnchor.y); return localAnchorA; }
public Vector2 getLocalAnchorB () { Vec2 localAnchor = joint.getLocalAnchorB(); localAnchorB.set(localAnchor.x, localAnchor.y); return localAnchorB; }
public Vector2 getLocalAxisA () { Vec2 localAxis = joint.getLocalAxisA(); localAxisA.set(localAxis.x, localAxis.y); return localAxisA; }
@Override public void keyPressed(char argKeyChar, int argKeyCode) { switch (argKeyChar) { case 'l': m_joint.enableLimit(!m_joint.isLimitEnabled()); getModel().getKeys()['l'] = false; break; case 'm': m_joint.enableMotor(!m_joint.isMotorEnabled()); getModel().getKeys()['m'] = false; break; case 's': m_joint.setMotorSpeed(-m_joint.getMotorSpeed()); getModel().getKeys()['s'] = false; break; } }
return new DistanceJoint(world.getPool(), (DistanceJointDef) def); case PRISMATIC: return new PrismaticJoint(world.getPool(), (PrismaticJointDef) def); case REVOLUTE: return new RevoluteJoint(world.getPool(), (RevoluteJointDef) def);
@Override public void keyPressed(char argKeyChar, int argKeyCode) { switch (argKeyChar) { case 'f': m_joint2.enableMotor(!m_joint2.isMotorEnabled()); getModel().getKeys()['f'] = false; break; case 'm': m_joint1.enableMotor(!m_joint1.isMotorEnabled()); getModel().getKeys()['m'] = false; break; } }
@Override public void step(TestbedSettings settings) { super.step(settings); float ratio, value; ratio = m_joint4.getRatio(); value = m_joint1.getJointAngle() + ratio * m_joint2.getJointAngle(); addTextLine("theta1 + " + ratio + " * theta2 = " + value); ratio = m_joint5.getRatio(); value = m_joint2.getJointAngle() + ratio * m_joint3.getJointTranslation(); addTextLine("theta2 + " + ratio + " * delta = " + value); }
return new DistanceJoint(world.getPool(), (DistanceJointDef) def); case PRISMATIC: return new PrismaticJoint(world.getPool(), (PrismaticJointDef) def); case REVOLUTE: return new RevoluteJoint(world.getPool(), (RevoluteJointDef) def);
@Override public void step(TestbedSettings settings) { super.step(settings); addTextLine("Keys: (f) toggle friction, (m) toggle motor"); float torque = m_joint1.getMotorTorque(1); Formatter f = new Formatter(); addTextLine(f.format("Friction: %b, Motor Force = %5.0f, ", m_joint2.isMotorEnabled(), torque) .toString()); f.close(); }
@Override public void step(TestbedSettings settings) { super.step(settings); float ratio, value; ratio = m_joint4.getRatio(); value = m_joint1.getJointAngle() + ratio * m_joint2.getJointAngle(); addTextLine("theta1 + " + ratio + " * theta2 = " + value); ratio = m_joint5.getRatio(); value = m_joint2.getJointAngle() + ratio * m_joint3.getJointTranslation(); addTextLine("theta2 + " + ratio + " * delta = " + value); }