1 /* 2 * To change this template, choose Tools | Templates 3 * and open the template in the editor. 4 */ 5 6 package com.jme3.bullet.collision.shapes; 7 8 import com.bulletphysics.collision.shapes.StaticPlaneShape; 9 import com.jme3.bullet.util.Converter; 10 import com.jme3.export.InputCapsule; 11 import com.jme3.export.JmeExporter; 12 import com.jme3.export.JmeImporter; 13 import com.jme3.export.OutputCapsule; 14 import com.jme3.math.Plane; 15 import java.io.IOException; 16 17 /** 18 * 19 * @author normenhansen 20 */ 21 public class PlaneCollisionShape extends CollisionShape{ 22 private Plane plane; 23 24 public PlaneCollisionShape() { 25 } 26 27 /** 28 * Creates a plane Collision shape 29 * @param plane the plane that defines the shape 30 */ 31 public PlaneCollisionShape(Plane plane) { 32 this.plane = plane; 33 createShape(); 34 } 35 36 public final Plane getPlane() { 37 return plane; 38 } 39 40 public void write(JmeExporter ex) throws IOException { 41 super.write(ex); 42 OutputCapsule capsule = ex.getCapsule(this); 43 capsule.write(plane, "collisionPlane", new Plane()); 44 } 45 46 public void read(JmeImporter im) throws IOException { 47 super.read(im); 48 InputCapsule capsule = im.getCapsule(this); 49 plane = (Plane) capsule.readSavable("collisionPlane", new Plane()); 50 createShape(); 51 } 52 53 protected void createShape() { 54 cShape = new StaticPlaneShape(Converter.convert(plane.getNormal()),plane.getConstant()); 55 cShape.setLocalScaling(Converter.convert(getScale())); 56 cShape.setMargin(margin); 57 } 58 59 } 60