1/*
2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
4 */
5
6package com.jme3.bullet.collision.shapes;
7
8import com.bulletphysics.collision.shapes.StaticPlaneShape;
9import com.jme3.bullet.util.Converter;
10import com.jme3.export.InputCapsule;
11import com.jme3.export.JmeExporter;
12import com.jme3.export.JmeImporter;
13import com.jme3.export.OutputCapsule;
14import com.jme3.math.Plane;
15import java.io.IOException;
16
17/**
18 *
19 * @author normenhansen
20 */
21public 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