public BepuEntity createChassis(Vector3 position, float width, float height, float length) { BepuEntity theChasis = new BepuEntity(); theChasis.modelName = "chassis7"; theChasis.LoadContent(); theChasis.localTransform = Matrix.CreateScale(new Vector3(width, height, length)); theChasis.body = new Box(position, 20, 15, 60, 1); theChasis.configureEvents(); XNAGame.Instance().space.Add(theChasis.body); XNAGame.Instance().children.Add(theChasis); return theChasis; }
public BepuEntity createWheel(Vector3 position, string mesh, float scale) { BepuEntity entity = new BepuEntity(); entity.modelName = "Wheels7"; entity.LoadContent(); Vector3[] vertices; int[] indices; TriangleMesh.GetVerticesAndIndicesFromModel(entity.model, out vertices, out indices); AffineTransform localTransform = new AffineTransform(new Vector3(scale, scale, scale), Quaternion.Identity, new Vector3(0, 0, 0)); MobileMesh mobileMesh = new MobileMesh(vertices, indices, localTransform, BEPUphysics.CollisionShapes.MobileMeshSolidity.Counterclockwise, 1); //Correct Scale for 'Wheels6:' // entity.localTransform = Matrix.CreateScale(4.5f, 4.5f, 4.5f); entity.localTransform = Matrix.CreateScale(2.75f, 2.75f, 2.75f); entity.body = mobileMesh; entity.HasColor = true; entity.body.Position = position; XNAGame.Instance().space.Add(entity.body); XNAGame.Instance().children.Add(entity); //modelDrawer.Add(entity.body); return entity; }
public BepuEntity createCylinder(Vector3 position, string mesh, float scale) { BepuEntity entity = new BepuEntity(); entity.modelName = "SlaveCylinder"; entity.LoadContent(); entity.Mass = 0; Vector3[] vertices; int[] indices; TriangleMesh.GetVerticesAndIndicesFromModel(entity.model, out vertices, out indices); AffineTransform localTransform = new AffineTransform(new Vector3(.4f, .4f, .4f), Quaternion.Identity, new Vector3(0, 0, 0)); MobileMesh mobileMesh = new MobileMesh(vertices, indices, localTransform, BEPUphysics.CollisionShapes.MobileMeshSolidity.Counterclockwise, 1); entity.localTransform = Matrix.CreateScale(1f, 1f,1f); entity.body = mobileMesh; entity.HasColor = true; entity.body.Position = position; entity.body.Orientation = Quaternion.CreateFromAxisAngle(new Vector3(1, 0, 0), MathHelper.PiOver2); XNAGame.Instance().space.Add(entity.body); XNAGame.Instance().children.Add(entity); // modelDrawer.Add(entity.body); return entity; }