use of com.badlogic.gdx.physics.box2d.joints.MouseJoint in project libgdx by libgdx.
the class World method createJoint.
/*
b2World* world = (b2World*)(addr);
b2Body* body = (b2Body*)(bodyAddr);
CustomContactFilter contactFilter(env, object);
CustomContactListener contactListener(env, object);
world->SetContactFilter(&contactFilter);
world->SetContactListener(&contactListener);
body->SetActive(false);
world->SetContactFilter(&defaultFilter);
world->SetContactListener(0);
*/
/** Create a joint to constrain bodies together. No reference to the definition is retained. This may cause the connected bodies
* to cease colliding.
* @warning This function is locked during callbacks. */
public Joint createJoint(JointDef def) {
long jointAddr = createProperJoint(def);
Joint joint = null;
if (def.type == JointType.DistanceJoint)
joint = new DistanceJoint(this, jointAddr);
if (def.type == JointType.FrictionJoint)
joint = new FrictionJoint(this, jointAddr);
if (def.type == JointType.GearJoint)
joint = new GearJoint(this, jointAddr, ((GearJointDef) def).joint1, ((GearJointDef) def).joint2);
if (def.type == JointType.MotorJoint)
joint = new MotorJoint(this, jointAddr);
if (def.type == JointType.MouseJoint)
joint = new MouseJoint(this, jointAddr);
if (def.type == JointType.PrismaticJoint)
joint = new PrismaticJoint(this, jointAddr);
if (def.type == JointType.PulleyJoint)
joint = new PulleyJoint(this, jointAddr);
if (def.type == JointType.RevoluteJoint)
joint = new RevoluteJoint(this, jointAddr);
if (def.type == JointType.RopeJoint)
joint = new RopeJoint(this, jointAddr);
if (def.type == JointType.WeldJoint)
joint = new WeldJoint(this, jointAddr);
if (def.type == JointType.WheelJoint)
joint = new WheelJoint(this, jointAddr);
if (joint != null)
joints.put(joint.addr, joint);
JointEdge jointEdgeA = new JointEdge(def.bodyB, joint);
JointEdge jointEdgeB = new JointEdge(def.bodyA, joint);
joint.jointEdgeA = jointEdgeA;
joint.jointEdgeB = jointEdgeB;
def.bodyA.joints.add(jointEdgeA);
def.bodyB.joints.add(jointEdgeB);
return joint;
}
use of com.badlogic.gdx.physics.box2d.joints.MouseJoint in project RubeLoader by tescott.
the class JointSerializer method read.
@SuppressWarnings("rawtypes")
@Override
public Joint read(Json json, JsonValue jsonData, Class type) {
if (bodies == null || world == null)
return null;
int indexA = json.readValue("bodyA", int.class, bodies.size, jsonData);
int indexB = json.readValue("bodyB", int.class, bodies.size, jsonData);
if (indexA >= bodies.size || indexB >= bodies.size)
return null;
Joint joint = null;
JointDef jointDef = null;
String jointType = json.readValue("type", String.class, jsonData);
if (jointType == null)
return null;
// First pass
if (joints == null && !jointType.equals("gear")) {
if (jointType.equals("revolute")) {
jointDef = json.readValue(RevoluteJointDef.class, jsonData);
} else if (jointType.equals("prismatic")) {
jointDef = json.readValue(PrismaticJointDef.class, jsonData);
} else if (jointType.equals("distance")) {
jointDef = json.readValue(DistanceJointDef.class, jsonData);
} else if (jointType.equals("pulley")) {
jointDef = json.readValue(PulleyJointDef.class, jsonData);
} else if (jointType.equals("mouse")) {
jointDef = json.readValue(MouseJointDef.class, jsonData);
} else if (jointType.equals("wheel")) {
jointDef = json.readValue(WheelJointDef.class, jsonData);
} else if (jointType.equals("weld")) {
jointDef = json.readValue(WeldJointDef.class, jsonData);
} else if (jointType.equals("friction")) {
jointDef = json.readValue(FrictionJointDef.class, jsonData);
} else if (jointType.equals("rope")) {
jointDef = json.readValue(RopeJointDef.class, jsonData);
}
} else if (// Second pass
joints != null && jointType.equals("gear")) {
jointDef = json.readValue(GearJointDef.class, jsonData);
}
if (jointDef != null) {
jointDef.bodyA = bodies.get(indexA);
jointDef.bodyB = bodies.get(indexB);
jointDef.collideConnected = json.readValue("collideConnected", boolean.class, RubeDefaults.Joint.collideConnected, jsonData);
joint = world.createJoint(jointDef);
if (jointType.equals("mouse")) {
((MouseJoint) joint).setTarget(mouseJointDefSerializer.target);
}
}
scene.parseCustomProperties(json, joint, jsonData);
String name = json.readValue("name", String.class, jsonData);
if (name != null) {
scene.putNamed(name, joint);
}
return joint;
}
Aggregations