Home | History | Annotate | Download | only in shapes
      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