Game Development Reference
In-Depth Information
height = 2.5f;
cylinderModel = builder.createCylinder(width, height,
width, 20, new Material(ColorAttribute.createDiffuse(Color.RED)),
Usage.Position | Usage.Normal);
cylinderShape = new btCylinderShape(new Vector3(width,
height, width).scl(.5f));
}
private btRigidBody createRigidBody(Model model,
btCollisionShape CollisionShape, Vector3 position, boolean
isStatic) {
if (isStatic)
return createStaticRigidBody(model,
CollisionShape, position);
final ModelInstance instance = new ModelInstance(model);
final btMotionState motionState = new
MyMotionState(instance);
motionState.setWorldTransform(instance.transform.trn
(position).rotate(Vector3.Z, MathUtils.random(360)));
final btRigidBodyConstructionInfo bodyInfo = new
btRigidBodyConstructionInfo(1, motionState, CollisionShape,
localIneria);
final btRigidBody body = new btRigidBody(bodyInfo);
body.userData = new UserData(instance, motionState,
bodyInfo, body);
world.addRigidBody(body);
return body;
}
private btRigidBody createStaticRigidBody(Model model,
btCollisionShape CollisionShape, Vector3 position) {
final ModelInstance instance = new ModelInstance(model);
instance.transform.trn(position);
final btRigidBodyConstructionInfo bodyInfo = new
btRigidBodyConstructionInfo(0, null, CollisionShape,
Vector3.Zero);
final btRigidBody body = new btRigidBody(bodyInfo);
body.translate(instance.transform.getTranslation(temp));
body.userData = new UserData(instance, null, bodyInfo,
body);
world.addRigidBody(body);
return body;
}
 
Search WWH ::




Custom Search