BowlerKernel
VehicleCSGPhysicsManager.java
Go to the documentation of this file.
1 package com.neuronrobotics.bowlerstudio.physics;
2 
3 import java.util.ArrayList;
4 
5 import com.bulletphysics.dynamics.vehicle.DefaultVehicleRaycaster;
6 import com.bulletphysics.dynamics.vehicle.RaycastVehicle;
7 import com.bulletphysics.dynamics.vehicle.VehicleRaycaster;
8 import com.bulletphysics.dynamics.vehicle.VehicleTuning;
9 import com.bulletphysics.linearmath.Transform;
10 //import com.neuronrobotics.bowlerstudio.BowlerStudio;
11 
12 import eu.mihosoft.vrl.v3d.CSG;
13 
15 
17 
18 
19  private VehicleTuning tuning = new VehicleTuning();
20  public VehicleRaycaster vehicleRayCaster;
21  private RaycastVehicle vehicle;
22 
23  public VehicleCSGPhysicsManager(ArrayList<CSG> baseCSG, Transform pose, double mass,
24  boolean adjustCenter,
25  PhysicsCore core) {
26  super(baseCSG, pose, mass, adjustCenter, core);
27 
28  vehicleRayCaster = new DefaultVehicleRaycaster(core.getDynamicsWorld());
29  setVehicle(new RaycastVehicle(getTuning(), getFallRigidBody(), vehicleRayCaster));
30  }
31 
32  @Override
33  public void update(float timeStep) {
34  getFallRigidBody().getMotionState().getWorldTransform(getUpdateTransform());
35  if (getUpdateManager() != null) {
36  try {
37  getUpdateManager().update(timeStep);
38  } catch (Exception e) {
39  //BowlerStudio.printStackTrace(e);
40  throw e;
41  }
42  }
43  vehicle.updateVehicle(timeStep);
44 
45  }
46 
47 
48  public RaycastVehicle getVehicle() {
49  return vehicle;
50  }
51 
52 
53  public void setVehicle(RaycastVehicle vehicle) {
54  this.vehicle = vehicle;
55  }
56 
57  public VehicleTuning getTuning() {
58  return tuning;
59  }
60 
61  public void setTuning(VehicleTuning tuning) {
62  this.tuning = tuning;
63  }
64 
65 
66 }
VehicleCSGPhysicsManager(ArrayList< CSG > baseCSG, Transform pose, double mass, boolean adjustCenter, PhysicsCore core)