Search in sources :

Example 1 with PhysicsVehicle

use of com.jme3.bullet.objects.PhysicsVehicle in project jmonkeyengine by jMonkeyEngine.

the class BulletDebugAppState method updateVehicles.

private void updateVehicles() {
    HashMap<PhysicsVehicle, Spatial> oldObjects = vehicles;
    vehicles = new HashMap<PhysicsVehicle, Spatial>();
    Collection<PhysicsVehicle> current = space.getVehicleList();
    //create new map
    for (Iterator<PhysicsVehicle> it = current.iterator(); it.hasNext(); ) {
        PhysicsVehicle physicsObject = it.next();
        //copy existing spatials
        if (oldObjects.containsKey(physicsObject)) {
            Spatial spat = oldObjects.get(physicsObject);
            vehicles.put(physicsObject, spat);
            oldObjects.remove(physicsObject);
        } else {
            if (filter == null || filter.displayObject(physicsObject)) {
                logger.log(Level.FINE, "Create new debug Vehicle");
                //create new spatial
                Node node = new Node(physicsObject.toString());
                node.addControl(new BulletVehicleDebugControl(this, physicsObject));
                vehicles.put(physicsObject, node);
                physicsDebugRootNode.attachChild(node);
            }
        }
    }
    //remove leftover spatials
    for (Map.Entry<PhysicsVehicle, Spatial> entry : oldObjects.entrySet()) {
        PhysicsVehicle object = entry.getKey();
        Spatial spatial = entry.getValue();
        spatial.removeFromParent();
    }
}
Also used : PhysicsVehicle(com.jme3.bullet.objects.PhysicsVehicle) Spatial(com.jme3.scene.Spatial) Node(com.jme3.scene.Node) HashMap(java.util.HashMap) Map(java.util.Map)

Aggregations

PhysicsVehicle (com.jme3.bullet.objects.PhysicsVehicle)1 Node (com.jme3.scene.Node)1 Spatial (com.jme3.scene.Spatial)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1