aboutsummaryrefslogtreecommitdiff
path: root/engine/src/bullet/com/jme3/bullet/collision/shapes/SimplexCollisionShape.java
diff options
context:
space:
mode:
authorScott Barta <sbarta@google.com>2012-03-01 12:35:35 -0800
committerScott Barta <sbarta@google.com>2012-03-01 12:40:08 -0800
commit59b2e6871c65f58fdad78cd7229c292f6a177578 (patch)
tree2d4e7bfc05b93f40b34675d77e403dd1c25efafd /engine/src/bullet/com/jme3/bullet/collision/shapes/SimplexCollisionShape.java
parentf9b30489e75ac1eabc365064959804e99534f7ab (diff)
downloadjmonkeyengine-59b2e6871c65f58fdad78cd7229c292f6a177578.tar.gz
Adds the jMonkeyEngine library to the build.
Adds the jMonkeyEngine open source 3D game engine to the build. This is built as a static library and is only used by the Finsky client. Change-Id: I06a3f054df7b8a67757267d884854f70c5a16ca0
Diffstat (limited to 'engine/src/bullet/com/jme3/bullet/collision/shapes/SimplexCollisionShape.java')
-rw-r--r--engine/src/bullet/com/jme3/bullet/collision/shapes/SimplexCollisionShape.java100
1 files changed, 100 insertions, 0 deletions
diff --git a/engine/src/bullet/com/jme3/bullet/collision/shapes/SimplexCollisionShape.java b/engine/src/bullet/com/jme3/bullet/collision/shapes/SimplexCollisionShape.java
new file mode 100644
index 0000000..cef33d7
--- /dev/null
+++ b/engine/src/bullet/com/jme3/bullet/collision/shapes/SimplexCollisionShape.java
@@ -0,0 +1,100 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package com.jme3.bullet.collision.shapes;
+
+import com.jme3.export.InputCapsule;
+import com.jme3.export.JmeExporter;
+import com.jme3.export.JmeImporter;
+import com.jme3.export.OutputCapsule;
+import com.jme3.math.Vector3f;
+import java.io.IOException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ * A simple point, line, triangle or quad collisionShape based on one to four points-
+ * @author normenhansen
+ */
+public class SimplexCollisionShape extends CollisionShape {
+
+ private Vector3f vector1, vector2, vector3, vector4;
+
+ public SimplexCollisionShape() {
+ }
+
+ public SimplexCollisionShape(Vector3f point1, Vector3f point2, Vector3f point3, Vector3f point4) {
+ vector1 = point1;
+ vector2 = point2;
+ vector3 = point3;
+ vector4 = point4;
+ createShape();
+ }
+
+ public SimplexCollisionShape(Vector3f point1, Vector3f point2, Vector3f point3) {
+ vector1 = point1;
+ vector2 = point2;
+ vector3 = point3;
+ createShape();
+ }
+
+ public SimplexCollisionShape(Vector3f point1, Vector3f point2) {
+ vector1 = point1;
+ vector2 = point2;
+ createShape();
+ }
+
+ public SimplexCollisionShape(Vector3f point1) {
+ vector1 = point1;
+ createShape();
+ }
+
+ public void write(JmeExporter ex) throws IOException {
+ super.write(ex);
+ OutputCapsule capsule = ex.getCapsule(this);
+ capsule.write(vector1, "simplexPoint1", null);
+ capsule.write(vector2, "simplexPoint2", null);
+ capsule.write(vector3, "simplexPoint3", null);
+ capsule.write(vector4, "simplexPoint4", null);
+ }
+
+ public void read(JmeImporter im) throws IOException {
+ super.read(im);
+ InputCapsule capsule = im.getCapsule(this);
+ vector1 = (Vector3f) capsule.readSavable("simplexPoint1", null);
+ vector2 = (Vector3f) capsule.readSavable("simplexPoint2", null);
+ vector3 = (Vector3f) capsule.readSavable("simplexPoint3", null);
+ vector4 = (Vector3f) capsule.readSavable("simplexPoint4", null);
+ createShape();
+ }
+
+ protected void createShape() {
+ if (vector4 != null) {
+ objectId = createShape(vector1, vector2, vector3, vector4);
+// objectId = new BU_Simplex1to4(Converter.convert(vector1), Converter.convert(vector2), Converter.convert(vector3), Converter.convert(vector4));
+ } else if (vector3 != null) {
+ objectId = createShape(vector1, vector2, vector3);
+// objectId = new BU_Simplex1to4(Converter.convert(vector1), Converter.convert(vector2), Converter.convert(vector3));
+ } else if (vector2 != null) {
+ objectId = createShape(vector1, vector2);
+// objectId = new BU_Simplex1to4(Converter.convert(vector1), Converter.convert(vector2));
+ } else {
+ objectId = createShape(vector1);
+// objectId = new BU_Simplex1to4(Converter.convert(vector1));
+ }
+ Logger.getLogger(this.getClass().getName()).log(Level.INFO, "Created Shape {0}", Long.toHexString(objectId));
+// objectId.setLocalScaling(Converter.convert(getScale()));
+// objectId.setMargin(margin);
+ setScale(scale);
+ setMargin(margin);
+ }
+
+ private native long createShape(Vector3f vector1);
+
+ private native long createShape(Vector3f vector1, Vector3f vector2);
+
+ private native long createShape(Vector3f vector1, Vector3f vector2, Vector3f vector3);
+
+ private native long createShape(Vector3f vector1, Vector3f vector2, Vector3f vector3, Vector3f vector4);
+}