예제 #1
0
파일: Chassis.cs 프로젝트: gpforde/GPBrakes
 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;
 }
예제 #2
0
파일: Wheel.cs 프로젝트: gpforde/GPBrakes
 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;
 }
예제 #3
0
        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;
        }