OSDN Git Service

Swig generated files
authorXoppa <contact@xoppa.nl>
Wed, 20 Mar 2013 02:25:34 +0000 (03:25 +0100)
committerXoppa <contact@xoppa.nl>
Wed, 20 Mar 2013 02:25:34 +0000 (03:25 +0100)
14 files changed:
extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/BaseContactAddedListener.java [new file with mode: 0644]
extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/BaseContactProcessedListener.java [new file with mode: 0644]
extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/ContactAddedListenerByObject.java [new file with mode: 0644]
extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/ContactAddedListenerByValue.java [new file with mode: 0644]
extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/ContactAddedListenerByWrapper.java [new file with mode: 0644]
extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/ContactDestroyedListener.java [new file with mode: 0644]
extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/ContactProcessedListenerByObject.java [new file with mode: 0644]
extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/ContactProcessedListenerByValue.java [new file with mode: 0644]
extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/GdxCollisionObjectBridge.java [new file with mode: 0644]
extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/btCollisionObject.java
extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/btManifoldPoint.java
extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/gdxBulletJNI.java
extensions/gdx-bullet/jni/swig-src/gdxBullet_wrap.cpp
extensions/gdx-bullet/jni/swig-src/gdxBullet_wrap.h

diff --git a/extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/BaseContactAddedListener.java b/extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/BaseContactAddedListener.java
new file mode 100644 (file)
index 0000000..e612242
--- /dev/null
@@ -0,0 +1,59 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 2.0.9
+ *
+ * Do not make changes to this file unless you know what you are doing--modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+package com.badlogic.gdx.physics.bullet;
+
+import com.badlogic.gdx.math.Vector3;
+import com.badlogic.gdx.math.Quaternion;
+import com.badlogic.gdx.math.Matrix3;
+import com.badlogic.gdx.math.Matrix4;
+
+public class BaseContactAddedListener {
+  private long swigCPtr;
+  protected boolean swigCMemOwn;
+
+  protected BaseContactAddedListener(long cPtr, boolean cMemoryOwn) {
+    swigCMemOwn = cMemoryOwn;
+    swigCPtr = cPtr;
+  }
+
+  public static long getCPtr(BaseContactAddedListener obj) {
+    return (obj == null) ? 0 : obj.swigCPtr;
+  }
+
+  protected void finalize() {
+    delete();
+  }
+
+  public synchronized void delete() {
+    if (swigCPtr != 0) {
+      if (swigCMemOwn) {
+        swigCMemOwn = false;
+        gdxBulletJNI.delete_BaseContactAddedListener(swigCPtr);
+      }
+      swigCPtr = 0;
+    }
+  }
+
+  public void enable() {
+    gdxBulletJNI.BaseContactAddedListener_enable(swigCPtr, this);
+  }
+
+  public void disable() {
+    gdxBulletJNI.BaseContactAddedListener_disable(swigCPtr, this);
+  }
+
+  public boolean isEnabled() {
+    return gdxBulletJNI.BaseContactAddedListener_isEnabled(swigCPtr, this);
+  }
+
+  public BaseContactAddedListener() {
+    this(gdxBulletJNI.new_BaseContactAddedListener(), true);
+  }
+
+}
diff --git a/extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/BaseContactProcessedListener.java b/extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/BaseContactProcessedListener.java
new file mode 100644 (file)
index 0000000..6503dfa
--- /dev/null
@@ -0,0 +1,59 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 2.0.9
+ *
+ * Do not make changes to this file unless you know what you are doing--modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+package com.badlogic.gdx.physics.bullet;
+
+import com.badlogic.gdx.math.Vector3;
+import com.badlogic.gdx.math.Quaternion;
+import com.badlogic.gdx.math.Matrix3;
+import com.badlogic.gdx.math.Matrix4;
+
+public class BaseContactProcessedListener {
+  private long swigCPtr;
+  protected boolean swigCMemOwn;
+
+  protected BaseContactProcessedListener(long cPtr, boolean cMemoryOwn) {
+    swigCMemOwn = cMemoryOwn;
+    swigCPtr = cPtr;
+  }
+
+  public static long getCPtr(BaseContactProcessedListener obj) {
+    return (obj == null) ? 0 : obj.swigCPtr;
+  }
+
+  protected void finalize() {
+    delete();
+  }
+
+  public synchronized void delete() {
+    if (swigCPtr != 0) {
+      if (swigCMemOwn) {
+        swigCMemOwn = false;
+        gdxBulletJNI.delete_BaseContactProcessedListener(swigCPtr);
+      }
+      swigCPtr = 0;
+    }
+  }
+
+  public void enable() {
+    gdxBulletJNI.BaseContactProcessedListener_enable(swigCPtr, this);
+  }
+
+  public void disable() {
+    gdxBulletJNI.BaseContactProcessedListener_disable(swigCPtr, this);
+  }
+
+  public boolean isEnabled() {
+    return gdxBulletJNI.BaseContactProcessedListener_isEnabled(swigCPtr, this);
+  }
+
+  public BaseContactProcessedListener() {
+    this(gdxBulletJNI.new_BaseContactProcessedListener(), true);
+  }
+
+}
diff --git a/extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/ContactAddedListenerByObject.java b/extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/ContactAddedListenerByObject.java
new file mode 100644 (file)
index 0000000..92e50b6
--- /dev/null
@@ -0,0 +1,67 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 2.0.9
+ *
+ * Do not make changes to this file unless you know what you are doing--modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+package com.badlogic.gdx.physics.bullet;
+
+import com.badlogic.gdx.math.Vector3;
+import com.badlogic.gdx.math.Quaternion;
+import com.badlogic.gdx.math.Matrix3;
+import com.badlogic.gdx.math.Matrix4;
+
+public class ContactAddedListenerByObject extends BaseContactAddedListener {
+  private long swigCPtr;
+
+  protected ContactAddedListenerByObject(long cPtr, boolean cMemoryOwn) {
+    super(gdxBulletJNI.ContactAddedListenerByObject_SWIGUpcast(cPtr), cMemoryOwn);
+    swigCPtr = cPtr;
+  }
+
+  public static long getCPtr(ContactAddedListenerByObject obj) {
+    return (obj == null) ? 0 : obj.swigCPtr;
+  }
+
+  protected void finalize() {
+    delete();
+  }
+
+  public synchronized void delete() {
+    if (swigCPtr != 0) {
+      if (swigCMemOwn) {
+        swigCMemOwn = false;
+        gdxBulletJNI.delete_ContactAddedListenerByObject(swigCPtr);
+      }
+      swigCPtr = 0;
+    }
+    super.delete();
+  }
+
+  protected void swigDirectorDisconnect() {
+    swigCMemOwn = false;
+    delete();
+  }
+
+  public void swigReleaseOwnership() {
+    swigCMemOwn = false;
+    gdxBulletJNI.ContactAddedListenerByObject_change_ownership(this, swigCPtr, false);
+  }
+
+  public void swigTakeOwnership() {
+    swigCMemOwn = true;
+    gdxBulletJNI.ContactAddedListenerByObject_change_ownership(this, swigCPtr, true);
+  }
+
+  public boolean onContactAdded(btManifoldPoint cp, btCollisionObject colObj0Wrap, int partId0, int index0, btCollisionObject colObj1Wrap, int partId1, int index1) {
+    return gdxBulletJNI.ContactAddedListenerByObject_onContactAdded(swigCPtr, this, btManifoldPoint.getCPtr(cp), cp, btCollisionObject.getCPtr(colObj0Wrap), colObj0Wrap, partId0, index0, btCollisionObject.getCPtr(colObj1Wrap), colObj1Wrap, partId1, index1);
+  }
+
+  public ContactAddedListenerByObject() {
+    this(gdxBulletJNI.new_ContactAddedListenerByObject(), true);
+    gdxBulletJNI.ContactAddedListenerByObject_director_connect(this, swigCPtr, swigCMemOwn, true);
+  }
+
+}
diff --git a/extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/ContactAddedListenerByValue.java b/extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/ContactAddedListenerByValue.java
new file mode 100644 (file)
index 0000000..846c6b7
--- /dev/null
@@ -0,0 +1,67 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 2.0.9
+ *
+ * Do not make changes to this file unless you know what you are doing--modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+package com.badlogic.gdx.physics.bullet;
+
+import com.badlogic.gdx.math.Vector3;
+import com.badlogic.gdx.math.Quaternion;
+import com.badlogic.gdx.math.Matrix3;
+import com.badlogic.gdx.math.Matrix4;
+
+public class ContactAddedListenerByValue extends BaseContactAddedListener {
+  private long swigCPtr;
+
+  protected ContactAddedListenerByValue(long cPtr, boolean cMemoryOwn) {
+    super(gdxBulletJNI.ContactAddedListenerByValue_SWIGUpcast(cPtr), cMemoryOwn);
+    swigCPtr = cPtr;
+  }
+
+  public static long getCPtr(ContactAddedListenerByValue obj) {
+    return (obj == null) ? 0 : obj.swigCPtr;
+  }
+
+  protected void finalize() {
+    delete();
+  }
+
+  public synchronized void delete() {
+    if (swigCPtr != 0) {
+      if (swigCMemOwn) {
+        swigCMemOwn = false;
+        gdxBulletJNI.delete_ContactAddedListenerByValue(swigCPtr);
+      }
+      swigCPtr = 0;
+    }
+    super.delete();
+  }
+
+  protected void swigDirectorDisconnect() {
+    swigCMemOwn = false;
+    delete();
+  }
+
+  public void swigReleaseOwnership() {
+    swigCMemOwn = false;
+    gdxBulletJNI.ContactAddedListenerByValue_change_ownership(this, swigCPtr, false);
+  }
+
+  public void swigTakeOwnership() {
+    swigCMemOwn = true;
+    gdxBulletJNI.ContactAddedListenerByValue_change_ownership(this, swigCPtr, true);
+  }
+
+  public boolean onContactAdded(btManifoldPoint cp, int userValue0, int partId0, int index0, int userValue1, int partId1, int index1) {
+    return gdxBulletJNI.ContactAddedListenerByValue_onContactAdded(swigCPtr, this, btManifoldPoint.getCPtr(cp), cp, userValue0, partId0, index0, userValue1, partId1, index1);
+  }
+
+  public ContactAddedListenerByValue() {
+    this(gdxBulletJNI.new_ContactAddedListenerByValue(), true);
+    gdxBulletJNI.ContactAddedListenerByValue_director_connect(this, swigCPtr, swigCMemOwn, true);
+  }
+
+}
diff --git a/extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/ContactAddedListenerByWrapper.java b/extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/ContactAddedListenerByWrapper.java
new file mode 100644 (file)
index 0000000..1d4befa
--- /dev/null
@@ -0,0 +1,67 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 2.0.9
+ *
+ * Do not make changes to this file unless you know what you are doing--modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+package com.badlogic.gdx.physics.bullet;
+
+import com.badlogic.gdx.math.Vector3;
+import com.badlogic.gdx.math.Quaternion;
+import com.badlogic.gdx.math.Matrix3;
+import com.badlogic.gdx.math.Matrix4;
+
+public class ContactAddedListenerByWrapper extends BaseContactAddedListener {
+  private long swigCPtr;
+
+  protected ContactAddedListenerByWrapper(long cPtr, boolean cMemoryOwn) {
+    super(gdxBulletJNI.ContactAddedListenerByWrapper_SWIGUpcast(cPtr), cMemoryOwn);
+    swigCPtr = cPtr;
+  }
+
+  public static long getCPtr(ContactAddedListenerByWrapper obj) {
+    return (obj == null) ? 0 : obj.swigCPtr;
+  }
+
+  protected void finalize() {
+    delete();
+  }
+
+  public synchronized void delete() {
+    if (swigCPtr != 0) {
+      if (swigCMemOwn) {
+        swigCMemOwn = false;
+        gdxBulletJNI.delete_ContactAddedListenerByWrapper(swigCPtr);
+      }
+      swigCPtr = 0;
+    }
+    super.delete();
+  }
+
+  protected void swigDirectorDisconnect() {
+    swigCMemOwn = false;
+    delete();
+  }
+
+  public void swigReleaseOwnership() {
+    swigCMemOwn = false;
+    gdxBulletJNI.ContactAddedListenerByWrapper_change_ownership(this, swigCPtr, false);
+  }
+
+  public void swigTakeOwnership() {
+    swigCMemOwn = true;
+    gdxBulletJNI.ContactAddedListenerByWrapper_change_ownership(this, swigCPtr, true);
+  }
+
+  public boolean onContactAdded(btManifoldPoint cp, btCollisionObjectWrapper colObj0Wrap, int partId0, int index0, btCollisionObjectWrapper colObj1Wrap, int partId1, int index1) {
+    return gdxBulletJNI.ContactAddedListenerByWrapper_onContactAdded(swigCPtr, this, btManifoldPoint.getCPtr(cp), cp, btCollisionObjectWrapper.getCPtr(colObj0Wrap), colObj0Wrap, partId0, index0, btCollisionObjectWrapper.getCPtr(colObj1Wrap), colObj1Wrap, partId1, index1);
+  }
+
+  public ContactAddedListenerByWrapper() {
+    this(gdxBulletJNI.new_ContactAddedListenerByWrapper(), true);
+    gdxBulletJNI.ContactAddedListenerByWrapper_director_connect(this, swigCPtr, swigCMemOwn, true);
+  }
+
+}
diff --git a/extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/ContactDestroyedListener.java b/extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/ContactDestroyedListener.java
new file mode 100644 (file)
index 0000000..ec59a28
--- /dev/null
@@ -0,0 +1,79 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 2.0.9
+ *
+ * Do not make changes to this file unless you know what you are doing--modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+package com.badlogic.gdx.physics.bullet;
+
+import com.badlogic.gdx.math.Vector3;
+import com.badlogic.gdx.math.Quaternion;
+import com.badlogic.gdx.math.Matrix3;
+import com.badlogic.gdx.math.Matrix4;
+
+public class ContactDestroyedListener {
+  private long swigCPtr;
+  protected boolean swigCMemOwn;
+
+  protected ContactDestroyedListener(long cPtr, boolean cMemoryOwn) {
+    swigCMemOwn = cMemoryOwn;
+    swigCPtr = cPtr;
+  }
+
+  public static long getCPtr(ContactDestroyedListener obj) {
+    return (obj == null) ? 0 : obj.swigCPtr;
+  }
+
+  protected void finalize() {
+    delete();
+  }
+
+  public synchronized void delete() {
+    if (swigCPtr != 0) {
+      if (swigCMemOwn) {
+        swigCMemOwn = false;
+        gdxBulletJNI.delete_ContactDestroyedListener(swigCPtr);
+      }
+      swigCPtr = 0;
+    }
+  }
+
+  protected void swigDirectorDisconnect() {
+    swigCMemOwn = false;
+    delete();
+  }
+
+  public void swigReleaseOwnership() {
+    swigCMemOwn = false;
+    gdxBulletJNI.ContactDestroyedListener_change_ownership(this, swigCPtr, false);
+  }
+
+  public void swigTakeOwnership() {
+    swigCMemOwn = true;
+    gdxBulletJNI.ContactDestroyedListener_change_ownership(this, swigCPtr, true);
+  }
+
+  public boolean onContactDestroyed(int manifoldPointUserValue) {
+    return gdxBulletJNI.ContactDestroyedListener_onContactDestroyed(swigCPtr, this, manifoldPointUserValue);
+  }
+
+  public void enable() {
+    gdxBulletJNI.ContactDestroyedListener_enable(swigCPtr, this);
+  }
+
+  public void disable() {
+    gdxBulletJNI.ContactDestroyedListener_disable(swigCPtr, this);
+  }
+
+  public boolean isEnabled() {
+    return gdxBulletJNI.ContactDestroyedListener_isEnabled(swigCPtr, this);
+  }
+
+  public ContactDestroyedListener() {
+    this(gdxBulletJNI.new_ContactDestroyedListener(), true);
+    gdxBulletJNI.ContactDestroyedListener_director_connect(this, swigCPtr, swigCMemOwn, true);
+  }
+
+}
diff --git a/extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/ContactProcessedListenerByObject.java b/extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/ContactProcessedListenerByObject.java
new file mode 100644 (file)
index 0000000..0f209fe
--- /dev/null
@@ -0,0 +1,67 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 2.0.9
+ *
+ * Do not make changes to this file unless you know what you are doing--modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+package com.badlogic.gdx.physics.bullet;
+
+import com.badlogic.gdx.math.Vector3;
+import com.badlogic.gdx.math.Quaternion;
+import com.badlogic.gdx.math.Matrix3;
+import com.badlogic.gdx.math.Matrix4;
+
+public class ContactProcessedListenerByObject extends BaseContactProcessedListener {
+  private long swigCPtr;
+
+  protected ContactProcessedListenerByObject(long cPtr, boolean cMemoryOwn) {
+    super(gdxBulletJNI.ContactProcessedListenerByObject_SWIGUpcast(cPtr), cMemoryOwn);
+    swigCPtr = cPtr;
+  }
+
+  public static long getCPtr(ContactProcessedListenerByObject obj) {
+    return (obj == null) ? 0 : obj.swigCPtr;
+  }
+
+  protected void finalize() {
+    delete();
+  }
+
+  public synchronized void delete() {
+    if (swigCPtr != 0) {
+      if (swigCMemOwn) {
+        swigCMemOwn = false;
+        gdxBulletJNI.delete_ContactProcessedListenerByObject(swigCPtr);
+      }
+      swigCPtr = 0;
+    }
+    super.delete();
+  }
+
+  protected void swigDirectorDisconnect() {
+    swigCMemOwn = false;
+    delete();
+  }
+
+  public void swigReleaseOwnership() {
+    swigCMemOwn = false;
+    gdxBulletJNI.ContactProcessedListenerByObject_change_ownership(this, swigCPtr, false);
+  }
+
+  public void swigTakeOwnership() {
+    swigCMemOwn = true;
+    gdxBulletJNI.ContactProcessedListenerByObject_change_ownership(this, swigCPtr, true);
+  }
+
+  public boolean onContactProcessed(btManifoldPoint cp, btCollisionObject colObj0, btCollisionObject colObj1) {
+    return gdxBulletJNI.ContactProcessedListenerByObject_onContactProcessed(swigCPtr, this, btManifoldPoint.getCPtr(cp), cp, btCollisionObject.getCPtr(colObj0), colObj0, btCollisionObject.getCPtr(colObj1), colObj1);
+  }
+
+  public ContactProcessedListenerByObject() {
+    this(gdxBulletJNI.new_ContactProcessedListenerByObject(), true);
+    gdxBulletJNI.ContactProcessedListenerByObject_director_connect(this, swigCPtr, swigCMemOwn, true);
+  }
+
+}
diff --git a/extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/ContactProcessedListenerByValue.java b/extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/ContactProcessedListenerByValue.java
new file mode 100644 (file)
index 0000000..191581f
--- /dev/null
@@ -0,0 +1,67 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 2.0.9
+ *
+ * Do not make changes to this file unless you know what you are doing--modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+package com.badlogic.gdx.physics.bullet;
+
+import com.badlogic.gdx.math.Vector3;
+import com.badlogic.gdx.math.Quaternion;
+import com.badlogic.gdx.math.Matrix3;
+import com.badlogic.gdx.math.Matrix4;
+
+public class ContactProcessedListenerByValue extends BaseContactProcessedListener {
+  private long swigCPtr;
+
+  protected ContactProcessedListenerByValue(long cPtr, boolean cMemoryOwn) {
+    super(gdxBulletJNI.ContactProcessedListenerByValue_SWIGUpcast(cPtr), cMemoryOwn);
+    swigCPtr = cPtr;
+  }
+
+  public static long getCPtr(ContactProcessedListenerByValue obj) {
+    return (obj == null) ? 0 : obj.swigCPtr;
+  }
+
+  protected void finalize() {
+    delete();
+  }
+
+  public synchronized void delete() {
+    if (swigCPtr != 0) {
+      if (swigCMemOwn) {
+        swigCMemOwn = false;
+        gdxBulletJNI.delete_ContactProcessedListenerByValue(swigCPtr);
+      }
+      swigCPtr = 0;
+    }
+    super.delete();
+  }
+
+  protected void swigDirectorDisconnect() {
+    swigCMemOwn = false;
+    delete();
+  }
+
+  public void swigReleaseOwnership() {
+    swigCMemOwn = false;
+    gdxBulletJNI.ContactProcessedListenerByValue_change_ownership(this, swigCPtr, false);
+  }
+
+  public void swigTakeOwnership() {
+    swigCMemOwn = true;
+    gdxBulletJNI.ContactProcessedListenerByValue_change_ownership(this, swigCPtr, true);
+  }
+
+  public boolean onContactProcessed(btManifoldPoint cp, int userValue0, int userValue1) {
+    return gdxBulletJNI.ContactProcessedListenerByValue_onContactProcessed(swigCPtr, this, btManifoldPoint.getCPtr(cp), cp, userValue0, userValue1);
+  }
+
+  public ContactProcessedListenerByValue() {
+    this(gdxBulletJNI.new_ContactProcessedListenerByValue(), true);
+    gdxBulletJNI.ContactProcessedListenerByValue_director_connect(this, swigCPtr, swigCMemOwn, true);
+  }
+
+}
diff --git a/extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/GdxCollisionObjectBridge.java b/extensions/gdx-bullet/jni/swig-src/com/badlogic/gdx/physics/bullet/GdxCollisionObjectBridge.java
new file mode 100644 (file)
index 0000000..1b5726c
--- /dev/null
@@ -0,0 +1,55 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 2.0.9
+ *
+ * Do not make changes to this file unless you know what you are doing--modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+package com.badlogic.gdx.physics.bullet;
+
+import com.badlogic.gdx.math.Vector3;
+import com.badlogic.gdx.math.Quaternion;
+import com.badlogic.gdx.math.Matrix3;
+import com.badlogic.gdx.math.Matrix4;
+
+public class GdxCollisionObjectBridge {
+  private long swigCPtr;
+  protected boolean swigCMemOwn;
+
+  protected GdxCollisionObjectBridge(long cPtr, boolean cMemoryOwn) {
+    swigCMemOwn = cMemoryOwn;
+    swigCPtr = cPtr;
+  }
+
+  public static long getCPtr(GdxCollisionObjectBridge obj) {
+    return (obj == null) ? 0 : obj.swigCPtr;
+  }
+
+  protected void finalize() {
+    delete();
+  }
+
+  public synchronized void delete() {
+    if (swigCPtr != 0) {
+      if (swigCMemOwn) {
+        swigCMemOwn = false;
+        gdxBulletJNI.delete_GdxCollisionObjectBridge(swigCPtr);
+      }
+      swigCPtr = 0;
+    }
+  }
+
+  public void setUserValue(int value) {
+    gdxBulletJNI.GdxCollisionObjectBridge_userValue_set(swigCPtr, this, value);
+  }
+
+  public int getUserValue() {
+    return gdxBulletJNI.GdxCollisionObjectBridge_userValue_get(swigCPtr, this);
+  }
+
+  public GdxCollisionObjectBridge() {
+    this(gdxBulletJNI.new_GdxCollisionObjectBridge(), true);
+  }
+
+}
index 50fabc7..673e400 100755 (executable)
@@ -27,6 +27,7 @@ public class btCollisionObject implements
        \r
        private long swigCPtr;\r
        protected boolean swigCMemOwn;\r
+       public GdxCollisionObjectBridge gdxBridge;\r
        \r
        public Object userData;\r
        \r
@@ -34,11 +35,12 @@ public class btCollisionObject implements
                swigCMemOwn = cMemoryOwn;\r
                swigCPtr = cPtr;\r
                instances.put(cPtr, this);\r
+               gdxBridge = new GdxCollisionObjectBridge();\r
+               internalSetGdxBridge(gdxBridge);\r
        }\r
        \r
        @Override\r
        public void dispose() {\r
-               instances.remove(swigCPtr);\r
                delete();\r
        }\r
        \r
@@ -58,8 +60,13 @@ public class btCollisionObject implements
     delete();\r
   }\r
 \r
-  public synchronized void delete() {\r
+  public synchronized void delete()  {\r
+    if (gdxBridge != null) {\r
+       gdxBridge.delete();\r
+       gdxBridge = null;\r
+    }\r
     if (swigCPtr != 0) {\r
+      instances.remove(swigCPtr);\r
       if (swigCMemOwn) {\r
         swigCMemOwn = false;\r
         gdxBulletJNI.delete_btCollisionObject(swigCPtr);\r
@@ -68,6 +75,7 @@ public class btCollisionObject implements
     }\r
   }\r
 \r
+\r
   public boolean mergesSimulationIslands() {\r
     return gdxBulletJNI.btCollisionObject_mergesSimulationIslands(swigCPtr, this);\r
   }\r
@@ -300,6 +308,15 @@ public class btCollisionObject implements
     gdxBulletJNI.btCollisionObject_serializeSingleObject(swigCPtr, this, SWIGTYPE_p_btSerializer.getCPtr(serializer));\r
   }\r
 \r
+  public void internalSetGdxBridge(GdxCollisionObjectBridge bridge) {\r
+    gdxBulletJNI.btCollisionObject_internalSetGdxBridge(swigCPtr, this, GdxCollisionObjectBridge.getCPtr(bridge), bridge);\r
+  }\r
+\r
+  public GdxCollisionObjectBridge internalGetGdxBridge() {\r
+    long cPtr = gdxBulletJNI.btCollisionObject_internalGetGdxBridge(swigCPtr, this);\r
+    return (cPtr == 0) ? null : new GdxCollisionObjectBridge(cPtr, false);\r
+  }\r
+\r
   public void getAnisotropicFriction(Vector3 out) {\r
     gdxBulletJNI.btCollisionObject_getAnisotropicFriction__SWIG_1(swigCPtr, this, out);\r
   }\r
index 27829bf..16b92fa 100755 (executable)
@@ -281,4 +281,12 @@ public class btManifoldPoint {
     return gdxBulletJNI.btManifoldPoint_getAppliedImpulse(swigCPtr, this);\r
   }\r
 \r
+  public int getUserValue() {\r
+    return gdxBulletJNI.btManifoldPoint_getUserValue(swigCPtr, this);\r
+  }\r
+\r
+  public void setUserValue(int value) {\r
+    gdxBulletJNI.btManifoldPoint_setUserValue(swigCPtr, this, value);\r
+  }\r
+\r
 }\r
index 9a7fa59..e885433 100755 (executable)
@@ -1738,6 +1738,8 @@ public class gdxBulletJNI {
   public final static native int btCollisionObject_calculateSerializeBufferSize(long jarg1, btCollisionObject jarg1_);\r
   public final static native String btCollisionObject_serialize(long jarg1, btCollisionObject jarg1_, long jarg2, long jarg3);\r
   public final static native void btCollisionObject_serializeSingleObject(long jarg1, btCollisionObject jarg1_, long jarg2);\r
+  public final static native void btCollisionObject_internalSetGdxBridge(long jarg1, btCollisionObject jarg1_, long jarg2, GdxCollisionObjectBridge jarg2_);\r
+  public final static native long btCollisionObject_internalGetGdxBridge(long jarg1, btCollisionObject jarg1_);\r
   public final static native void btCollisionObject_getAnisotropicFriction__SWIG_1(long jarg1, btCollisionObject jarg1_, Vector3 jarg2);\r
   public final static native void btCollisionObject_getWorldTransform__SWIG_2(long jarg1, btCollisionObject jarg1_, Matrix4 jarg2);\r
   public final static native void btCollisionObject_getInterpolationWorldTransform__SWIG_2(long jarg1, btCollisionObject jarg1_, Matrix4 jarg2);\r
@@ -1843,6 +1845,10 @@ public class gdxBulletJNI {
   public final static native int btCollisionObjectFloatData_m_checkCollideWith_get(long jarg1, btCollisionObjectFloatData jarg1_);\r
   public final static native long new_btCollisionObjectFloatData();\r
   public final static native void delete_btCollisionObjectFloatData(long jarg1);\r
+  public final static native void GdxCollisionObjectBridge_userValue_set(long jarg1, GdxCollisionObjectBridge jarg1_, int jarg2);\r
+  public final static native int GdxCollisionObjectBridge_userValue_get(long jarg1, GdxCollisionObjectBridge jarg1_);\r
+  public final static native long new_GdxCollisionObjectBridge();\r
+  public final static native void delete_GdxCollisionObjectBridge(long jarg1);\r
   public final static native void btRigidBodyConstructionInfo_m_mass_set(long jarg1, btRigidBodyConstructionInfo jarg1_, float jarg2);\r
   public final static native float btRigidBodyConstructionInfo_m_mass_get(long jarg1, btRigidBodyConstructionInfo jarg1_);\r
   public final static native void btRigidBodyConstructionInfo_m_motionState_set(long jarg1, btRigidBodyConstructionInfo jarg1_, long jarg2, btMotionState jarg2_);\r
@@ -2549,6 +2555,8 @@ public class gdxBulletJNI {
   public final static native Vector3 btManifoldPoint_getPositionWorldOnB(long jarg1, btManifoldPoint jarg1_);\r
   public final static native void btManifoldPoint_setDistance(long jarg1, btManifoldPoint jarg1_, float jarg2);\r
   public final static native float btManifoldPoint_getAppliedImpulse(long jarg1, btManifoldPoint jarg1_);\r
+  public final static native int btManifoldPoint_getUserValue(long jarg1, btManifoldPoint jarg1_);\r
+  public final static native void btManifoldPoint_setUserValue(long jarg1, btManifoldPoint jarg1_, int jarg2);\r
   public final static native void delete_btManifoldPoint(long jarg1);\r
   public final static native long new_btContinuousConvexCollision__SWIG_0(long jarg1, btConvexShape jarg1_, long jarg2, btConvexShape jarg2_, long jarg3, long jarg4, btConvexPenetrationDepthSolver jarg4_);\r
   public final static native long new_btContinuousConvexCollision__SWIG_1(long jarg1, btConvexShape jarg1_, long jarg2, btStaticPlaneShape jarg2_);\r
@@ -2861,6 +2869,49 @@ public class gdxBulletJNI {
   public final static native void delete_InternalTickCallback(long jarg1);\r
   public final static native void InternalTickCallback_director_connect(InternalTickCallback obj, long cptr, boolean mem_own, boolean weak_global);\r
   public final static native void InternalTickCallback_change_ownership(InternalTickCallback obj, long cptr, boolean take_or_release);\r
+  public final static native void BaseContactAddedListener_enable(long jarg1, BaseContactAddedListener jarg1_);\r
+  public final static native void BaseContactAddedListener_disable(long jarg1, BaseContactAddedListener jarg1_);\r
+  public final static native boolean BaseContactAddedListener_isEnabled(long jarg1, BaseContactAddedListener jarg1_);\r
+  public final static native long new_BaseContactAddedListener();\r
+  public final static native void delete_BaseContactAddedListener(long jarg1);\r
+  public final static native boolean ContactAddedListenerByWrapper_onContactAdded(long jarg1, ContactAddedListenerByWrapper jarg1_, long jarg2, btManifoldPoint jarg2_, long jarg3, btCollisionObjectWrapper jarg3_, int jarg4, int jarg5, long jarg6, btCollisionObjectWrapper jarg6_, int jarg7, int jarg8);\r
+  public final static native long new_ContactAddedListenerByWrapper();\r
+  public final static native void delete_ContactAddedListenerByWrapper(long jarg1);\r
+  public final static native void ContactAddedListenerByWrapper_director_connect(ContactAddedListenerByWrapper obj, long cptr, boolean mem_own, boolean weak_global);\r
+  public final static native void ContactAddedListenerByWrapper_change_ownership(ContactAddedListenerByWrapper obj, long cptr, boolean take_or_release);\r
+  public final static native boolean ContactAddedListenerByObject_onContactAdded(long jarg1, ContactAddedListenerByObject jarg1_, long jarg2, btManifoldPoint jarg2_, long jarg3, btCollisionObject jarg3_, int jarg4, int jarg5, long jarg6, btCollisionObject jarg6_, int jarg7, int jarg8);\r
+  public final static native long new_ContactAddedListenerByObject();\r
+  public final static native void delete_ContactAddedListenerByObject(long jarg1);\r
+  public final static native void ContactAddedListenerByObject_director_connect(ContactAddedListenerByObject obj, long cptr, boolean mem_own, boolean weak_global);\r
+  public final static native void ContactAddedListenerByObject_change_ownership(ContactAddedListenerByObject obj, long cptr, boolean take_or_release);\r
+  public final static native boolean ContactAddedListenerByValue_onContactAdded(long jarg1, ContactAddedListenerByValue jarg1_, long jarg2, btManifoldPoint jarg2_, int jarg3, int jarg4, int jarg5, int jarg6, int jarg7, int jarg8);\r
+  public final static native long new_ContactAddedListenerByValue();\r
+  public final static native void delete_ContactAddedListenerByValue(long jarg1);\r
+  public final static native void ContactAddedListenerByValue_director_connect(ContactAddedListenerByValue obj, long cptr, boolean mem_own, boolean weak_global);\r
+  public final static native void ContactAddedListenerByValue_change_ownership(ContactAddedListenerByValue obj, long cptr, boolean take_or_release);\r
+  public final static native void BaseContactProcessedListener_enable(long jarg1, BaseContactProcessedListener jarg1_);\r
+  public final static native void BaseContactProcessedListener_disable(long jarg1, BaseContactProcessedListener jarg1_);\r
+  public final static native boolean BaseContactProcessedListener_isEnabled(long jarg1, BaseContactProcessedListener jarg1_);\r
+  public final static native long new_BaseContactProcessedListener();\r
+  public final static native void delete_BaseContactProcessedListener(long jarg1);\r
+  public final static native boolean ContactProcessedListenerByObject_onContactProcessed(long jarg1, ContactProcessedListenerByObject jarg1_, long jarg2, btManifoldPoint jarg2_, long jarg3, btCollisionObject jarg3_, long jarg4, btCollisionObject jarg4_);\r
+  public final static native long new_ContactProcessedListenerByObject();\r
+  public final static native void delete_ContactProcessedListenerByObject(long jarg1);\r
+  public final static native void ContactProcessedListenerByObject_director_connect(ContactProcessedListenerByObject obj, long cptr, boolean mem_own, boolean weak_global);\r
+  public final static native void ContactProcessedListenerByObject_change_ownership(ContactProcessedListenerByObject obj, long cptr, boolean take_or_release);\r
+  public final static native boolean ContactProcessedListenerByValue_onContactProcessed(long jarg1, ContactProcessedListenerByValue jarg1_, long jarg2, btManifoldPoint jarg2_, int jarg3, int jarg4);\r
+  public final static native long new_ContactProcessedListenerByValue();\r
+  public final static native void delete_ContactProcessedListenerByValue(long jarg1);\r
+  public final static native void ContactProcessedListenerByValue_director_connect(ContactProcessedListenerByValue obj, long cptr, boolean mem_own, boolean weak_global);\r
+  public final static native void ContactProcessedListenerByValue_change_ownership(ContactProcessedListenerByValue obj, long cptr, boolean take_or_release);\r
+  public final static native boolean ContactDestroyedListener_onContactDestroyed(long jarg1, ContactDestroyedListener jarg1_, int jarg2);\r
+  public final static native void ContactDestroyedListener_enable(long jarg1, ContactDestroyedListener jarg1_);\r
+  public final static native void ContactDestroyedListener_disable(long jarg1, ContactDestroyedListener jarg1_);\r
+  public final static native boolean ContactDestroyedListener_isEnabled(long jarg1, ContactDestroyedListener jarg1_);\r
+  public final static native long new_ContactDestroyedListener();\r
+  public final static native void delete_ContactDestroyedListener(long jarg1);\r
+  public final static native void ContactDestroyedListener_director_connect(ContactDestroyedListener obj, long cptr, boolean mem_own, boolean weak_global);\r
+  public final static native void ContactDestroyedListener_change_ownership(ContactDestroyedListener obj, long cptr, boolean take_or_release);\r
   public final static native long new_btSimpleDynamicsWorld(long jarg1, btDispatcher jarg1_, long jarg2, btBroadphaseInterface jarg2_, long jarg3, btConstraintSolver jarg3_, long jarg4, btCollisionConfiguration jarg4_);\r
   public final static native void delete_btSimpleDynamicsWorld(long jarg1);\r
   public final static native int btSimpleDynamicsWorld_stepSimulation__SWIG_0(long jarg1, btSimpleDynamicsWorld jarg1_, float jarg2, int jarg3, float jarg4);\r
@@ -4608,6 +4659,11 @@ public class gdxBulletJNI {
   public final static native long btTypedConstraint_SWIGUpcast(long jarg1);\r
   public final static native long btMultiSphereShape_SWIGUpcast(long jarg1);\r
   public final static native long btDynamicsWorld_SWIGUpcast(long jarg1);\r
+  public final static native long ContactAddedListenerByWrapper_SWIGUpcast(long jarg1);\r
+  public final static native long ContactAddedListenerByObject_SWIGUpcast(long jarg1);\r
+  public final static native long ContactAddedListenerByValue_SWIGUpcast(long jarg1);\r
+  public final static native long ContactProcessedListenerByObject_SWIGUpcast(long jarg1);\r
+  public final static native long ContactProcessedListenerByValue_SWIGUpcast(long jarg1);\r
   public final static native long btSimpleDynamicsWorld_SWIGUpcast(long jarg1);\r
   public final static native long btDiscreteDynamicsWorld_SWIGUpcast(long jarg1);\r
   public final static native long btCharacterControllerInterface_SWIGUpcast(long jarg1);\r
@@ -4756,6 +4812,24 @@ public class gdxBulletJNI {
   public static void SwigDirector_InternalTickCallback_onInternalTick(InternalTickCallback self, long dynamicsWorld, float timeStep) {\r
     self.onInternalTick((dynamicsWorld == 0) ? null : new btDynamicsWorld(dynamicsWorld, false), timeStep);\r
   }\r
+  public static boolean SwigDirector_ContactAddedListenerByWrapper_onContactAdded(ContactAddedListenerByWrapper self, long cp, long colObj0Wrap, int partId0, int index0, long colObj1Wrap, int partId1, int index1) {\r
+    return self.onContactAdded(new btManifoldPoint(cp, false), (colObj0Wrap == 0) ? null : new btCollisionObjectWrapper(colObj0Wrap, false), partId0, index0, (colObj1Wrap == 0) ? null : new btCollisionObjectWrapper(colObj1Wrap, false), partId1, index1);\r
+  }\r
+  public static boolean SwigDirector_ContactAddedListenerByObject_onContactAdded(ContactAddedListenerByObject self, long cp, long colObj0Wrap, int partId0, int index0, long colObj1Wrap, int partId1, int index1) {\r
+    return self.onContactAdded(new btManifoldPoint(cp, false), (colObj0Wrap == 0) ? null : new btCollisionObject(colObj0Wrap, false), partId0, index0, (colObj1Wrap == 0) ? null : new btCollisionObject(colObj1Wrap, false), partId1, index1);\r
+  }\r
+  public static boolean SwigDirector_ContactAddedListenerByValue_onContactAdded(ContactAddedListenerByValue self, long cp, int userValue0, int partId0, int index0, int userValue1, int partId1, int index1) {\r
+    return self.onContactAdded(new btManifoldPoint(cp, false), userValue0, partId0, index0, userValue1, partId1, index1);\r
+  }\r
+  public static boolean SwigDirector_ContactProcessedListenerByObject_onContactProcessed(ContactProcessedListenerByObject self, long cp, long colObj0, long colObj1) {\r
+    return self.onContactProcessed(new btManifoldPoint(cp, false), (colObj0 == 0) ? null : new btCollisionObject(colObj0, false), (colObj1 == 0) ? null : new btCollisionObject(colObj1, false));\r
+  }\r
+  public static boolean SwigDirector_ContactProcessedListenerByValue_onContactProcessed(ContactProcessedListenerByValue self, long cp, int userValue0, int userValue1) {\r
+    return self.onContactProcessed(new btManifoldPoint(cp, false), userValue0, userValue1);\r
+  }\r
+  public static boolean SwigDirector_ContactDestroyedListener_onContactDestroyed(ContactDestroyedListener self, int manifoldPointUserValue) {\r
+    return self.onContactDestroyed(manifoldPointUserValue);\r
+  }\r
 \r
   private final static native void swig_module_init();\r
   static {\r
index cc8b616..d5e6932 100755 (executable)
@@ -412,7 +412,7 @@ namespace Swig {
 namespace Swig {\r
   namespace {\r
     jclass jclass_gdxBulletJNI = NULL;\r
-    jmethodID director_methids[38];\r
+    jmethodID director_methids[44];\r
   }\r
 }\r
 \r
@@ -1793,7 +1793,14 @@ SWIGINTERN btConvexHullShape *new_btConvexHullShape__SWIG_4(btShapeHull const *h
 \r
 \r
 #include <BulletCollision/CollisionDispatch/btCollisionObject.h>\r
+#include <GdxCustom/GdxCollisionObjectBridge.h>\r
 \r
+SWIGINTERN void btCollisionObject_internalSetGdxBridge(btCollisionObject *self,GdxCollisionObjectBridge *bridge){\r
+               self->setUserPointer(bridge);\r
+       }\r
+SWIGINTERN GdxCollisionObjectBridge *btCollisionObject_internalGetGdxBridge(btCollisionObject *self){\r
+               return (GdxCollisionObjectBridge *)(self->getUserPointer());\r
+       }\r
 SWIGINTERN void btCollisionObject_getAnisotropicFriction__SWIG_1(btCollisionObject *self,btVector3 &out){\r
                out = self->getAnisotropicFriction();\r
        }\r
@@ -1810,12 +1817,10 @@ SWIGINTERN void btCollisionObject_getInterpolationAngularVelocity__SWIG_1(btColl
                out = self->getInterpolationAngularVelocity();\r
        }\r
 SWIGINTERN int btCollisionObject_getUserValue(btCollisionObject *self){\r
-               int result;\r
-               *(const void **)&result = self->getUserPointer();\r
-               return result;\r
+               return ((GdxCollisionObjectBridge*)(self->getUserPointer()))->userValue;;\r
        }\r
 SWIGINTERN void btCollisionObject_setUserValue(btCollisionObject *self,int value){\r
-               self->setUserPointer((void*)value);\r
+               ((GdxCollisionObjectBridge*)(self->getUserPointer()))->userValue = value;\r
        }\r
 \r
 #include <BulletDynamics/Dynamics/btRigidBody.h>\r
@@ -1942,6 +1947,14 @@ typedef btCollisionWorld::ContactResultCallback ContactResultCallback;
 \r
 #include <BulletCollision/NarrowPhaseCollision/btManifoldPoint.h>\r
 \r
+SWIGINTERN int btManifoldPoint_getUserValue(btManifoldPoint *self){\r
+               int result;\r
+               *(const void **)&result = self->m_userPersistentData;\r
+               return result;\r
+       }\r
+SWIGINTERN void btManifoldPoint_setUserValue(btManifoldPoint *self,int value){\r
+               self->m_userPersistentData = (void*)value;\r
+       }\r
 \r
 #include <BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.h>\r
 \r
@@ -2016,6 +2029,11 @@ typedef btTypedConstraint::btConstraintInfo2 btConstraintInfo2;
 #include <GdxCustom/InternalTickCallback.h>\r
 \r
 \r
+#include <GdxCustom/ContactAddedListener.h>\r
+#include <GdxCustom/ContactProcessedListener.h>\r
+#include <GdxCustom/ContactDestroyedListener.h>\r
+\r
+\r
 #include <BulletDynamics/Dynamics/btSimpleDynamicsWorld.h>\r
 \r
 \r
@@ -2298,9 +2316,9 @@ SWIGINTERN int btAlignedObjectArray_Sl_btBroadphasePair_Sg__getCollisionObjectsV
                                                *(const btCollisionObject **)&obj0 = manifold->getBody0();\r
                                                *(const btCollisionObject **)&obj1 = manifold->getBody1();\r
                                                if (obj0 == other)\r
-                                                       *(const void **)&(result[count++]) = manifold->getBody1()->getUserPointer();\r
+                                                       result[count++] = ((GdxCollisionObjectBridge*)manifold->getBody1()->getUserPointer())->userValue;\r
                                                else if (obj1 == other)\r
-                                                       *(const void **)&(result[count++]) = manifold->getBody0()->getUserPointer();\r
+                                                       result[count++] = ((GdxCollisionObjectBridge*)manifold->getBody0()->getUserPointer())->userValue;\r
                                                else continue;\r
                                                if (count >= max)\r
                                                        return count;\r
@@ -3783,6 +3801,434 @@ void SwigDirector_InternalTickCallback::swig_connect_director(JNIEnv *jenv, jobj
 }\r
 \r
 \r
+SwigDirector_ContactAddedListenerByWrapper::SwigDirector_ContactAddedListenerByWrapper(JNIEnv *jenv) : ContactAddedListenerByWrapper(), Swig::Director(jenv) {\r
+}\r
+\r
+bool SwigDirector_ContactAddedListenerByWrapper::onContactAdded(btManifoldPoint &cp, btCollisionObjectWrapper const *colObj0Wrap, int partId0, int index0, btCollisionObjectWrapper const *colObj1Wrap, int partId1, int index1) {\r
+  bool c_result = SwigValueInit< bool >() ;\r
+  jboolean jresult = 0 ;\r
+  JNIEnvWrapper swigjnienv(this) ;\r
+  JNIEnv * jenv = swigjnienv.getJNIEnv() ;\r
+  jobject swigjobj = (jobject) NULL ;\r
+  jlong jcp = 0 ;\r
+  jlong jcolObj0Wrap = 0 ;\r
+  jint jpartId0  ;\r
+  jint jindex0  ;\r
+  jlong jcolObj1Wrap = 0 ;\r
+  jint jpartId1  ;\r
+  jint jindex1  ;\r
+  \r
+  if (!swig_override[0]) {\r
+    SWIG_JavaThrowException(JNIEnvWrapper(this).getJNIEnv(), SWIG_JavaDirectorPureVirtual, "Attempted to invoke pure virtual method ContactAddedListenerByWrapper::onContactAdded.");\r
+    return c_result;\r
+  }\r
+  swigjobj = swig_get_self(jenv);\r
+  if (swigjobj && jenv->IsSameObject(swigjobj, NULL) == JNI_FALSE) {\r
+    *(btManifoldPoint **)&jcp = (btManifoldPoint *) &cp; \r
+    *((btCollisionObjectWrapper **)&jcolObj0Wrap) = (btCollisionObjectWrapper *) colObj0Wrap; \r
+    jpartId0 = (jint) partId0;\r
+    jindex0 = (jint) index0;\r
+    *((btCollisionObjectWrapper **)&jcolObj1Wrap) = (btCollisionObjectWrapper *) colObj1Wrap; \r
+    jpartId1 = (jint) partId1;\r
+    jindex1 = (jint) index1;\r
+    jresult = (jboolean) jenv->CallStaticBooleanMethod(Swig::jclass_gdxBulletJNI, Swig::director_methids[38], swigjobj, jcp, jcolObj0Wrap, jpartId0, jindex0, jcolObj1Wrap, jpartId1, jindex1);\r
+    if (jenv->ExceptionCheck() == JNI_TRUE) return c_result;\r
+    c_result = jresult ? true : false; \r
+  } else {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null upcall object");\r
+  }\r
+  if (swigjobj) jenv->DeleteLocalRef(swigjobj);\r
+  return c_result;\r
+}\r
+\r
+void SwigDirector_ContactAddedListenerByWrapper::swig_connect_director(JNIEnv *jenv, jobject jself, jclass jcls, bool swig_mem_own, bool weak_global) {\r
+  static struct {\r
+    const char *mname;\r
+    const char *mdesc;\r
+    jmethodID base_methid;\r
+  } methods[] = {\r
+    {\r
+      "onContactAdded", "(Lcom/badlogic/gdx/physics/bullet/btManifoldPoint;Lcom/badlogic/gdx/physics/bullet/btCollisionObjectWrapper;IILcom/badlogic/gdx/physics/bullet/btCollisionObjectWrapper;II)Z", NULL \r
+    }\r
+  };\r
+  \r
+  static jclass baseclass = 0 ;\r
+  \r
+  if (swig_set_self(jenv, jself, swig_mem_own, weak_global)) {\r
+    if (!baseclass) {\r
+      baseclass = jenv->FindClass("com/badlogic/gdx/physics/bullet/ContactAddedListenerByWrapper");\r
+      if (!baseclass) return;\r
+      baseclass = (jclass) jenv->NewGlobalRef(baseclass);\r
+    }\r
+    bool derived = (jenv->IsSameObject(baseclass, jcls) ? false : true);\r
+    for (int i = 0; i < 1; ++i) {\r
+      if (!methods[i].base_methid) {\r
+        methods[i].base_methid = jenv->GetMethodID(baseclass, methods[i].mname, methods[i].mdesc);\r
+        if (!methods[i].base_methid) return;\r
+      }\r
+      swig_override[i] = false;\r
+      if (derived) {\r
+        jmethodID methid = jenv->GetMethodID(jcls, methods[i].mname, methods[i].mdesc);\r
+        swig_override[i] = (methid != methods[i].base_methid);\r
+        jenv->ExceptionClear();\r
+      }\r
+    }\r
+  }\r
+}\r
+\r
+\r
+SwigDirector_ContactAddedListenerByObject::SwigDirector_ContactAddedListenerByObject(JNIEnv *jenv) : ContactAddedListenerByObject(), Swig::Director(jenv) {\r
+}\r
+\r
+bool SwigDirector_ContactAddedListenerByObject::onContactAdded(btManifoldPoint &cp, btCollisionObject const *colObj0Wrap, int partId0, int index0, btCollisionObject const *colObj1Wrap, int partId1, int index1) {\r
+  bool c_result = SwigValueInit< bool >() ;\r
+  jboolean jresult = 0 ;\r
+  JNIEnvWrapper swigjnienv(this) ;\r
+  JNIEnv * jenv = swigjnienv.getJNIEnv() ;\r
+  jobject swigjobj = (jobject) NULL ;\r
+  jlong jcp = 0 ;\r
+  jlong jcolObj0Wrap = 0 ;\r
+  jint jpartId0  ;\r
+  jint jindex0  ;\r
+  jlong jcolObj1Wrap = 0 ;\r
+  jint jpartId1  ;\r
+  jint jindex1  ;\r
+  \r
+  if (!swig_override[0]) {\r
+    SWIG_JavaThrowException(JNIEnvWrapper(this).getJNIEnv(), SWIG_JavaDirectorPureVirtual, "Attempted to invoke pure virtual method ContactAddedListenerByObject::onContactAdded.");\r
+    return c_result;\r
+  }\r
+  swigjobj = swig_get_self(jenv);\r
+  if (swigjobj && jenv->IsSameObject(swigjobj, NULL) == JNI_FALSE) {\r
+    *(btManifoldPoint **)&jcp = (btManifoldPoint *) &cp; \r
+    *((btCollisionObject **)&jcolObj0Wrap) = (btCollisionObject *) colObj0Wrap; \r
+    jpartId0 = (jint) partId0;\r
+    jindex0 = (jint) index0;\r
+    *((btCollisionObject **)&jcolObj1Wrap) = (btCollisionObject *) colObj1Wrap; \r
+    jpartId1 = (jint) partId1;\r
+    jindex1 = (jint) index1;\r
+    jresult = (jboolean) jenv->CallStaticBooleanMethod(Swig::jclass_gdxBulletJNI, Swig::director_methids[39], swigjobj, jcp, jcolObj0Wrap, jpartId0, jindex0, jcolObj1Wrap, jpartId1, jindex1);\r
+    if (jenv->ExceptionCheck() == JNI_TRUE) return c_result;\r
+    c_result = jresult ? true : false; \r
+  } else {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null upcall object");\r
+  }\r
+  if (swigjobj) jenv->DeleteLocalRef(swigjobj);\r
+  return c_result;\r
+}\r
+\r
+void SwigDirector_ContactAddedListenerByObject::swig_connect_director(JNIEnv *jenv, jobject jself, jclass jcls, bool swig_mem_own, bool weak_global) {\r
+  static struct {\r
+    const char *mname;\r
+    const char *mdesc;\r
+    jmethodID base_methid;\r
+  } methods[] = {\r
+    {\r
+      "onContactAdded", "(Lcom/badlogic/gdx/physics/bullet/btManifoldPoint;Lcom/badlogic/gdx/physics/bullet/btCollisionObject;IILcom/badlogic/gdx/physics/bullet/btCollisionObject;II)Z", NULL \r
+    }\r
+  };\r
+  \r
+  static jclass baseclass = 0 ;\r
+  \r
+  if (swig_set_self(jenv, jself, swig_mem_own, weak_global)) {\r
+    if (!baseclass) {\r
+      baseclass = jenv->FindClass("com/badlogic/gdx/physics/bullet/ContactAddedListenerByObject");\r
+      if (!baseclass) return;\r
+      baseclass = (jclass) jenv->NewGlobalRef(baseclass);\r
+    }\r
+    bool derived = (jenv->IsSameObject(baseclass, jcls) ? false : true);\r
+    for (int i = 0; i < 1; ++i) {\r
+      if (!methods[i].base_methid) {\r
+        methods[i].base_methid = jenv->GetMethodID(baseclass, methods[i].mname, methods[i].mdesc);\r
+        if (!methods[i].base_methid) return;\r
+      }\r
+      swig_override[i] = false;\r
+      if (derived) {\r
+        jmethodID methid = jenv->GetMethodID(jcls, methods[i].mname, methods[i].mdesc);\r
+        swig_override[i] = (methid != methods[i].base_methid);\r
+        jenv->ExceptionClear();\r
+      }\r
+    }\r
+  }\r
+}\r
+\r
+\r
+SwigDirector_ContactAddedListenerByValue::SwigDirector_ContactAddedListenerByValue(JNIEnv *jenv) : ContactAddedListenerByValue(), Swig::Director(jenv) {\r
+}\r
+\r
+bool SwigDirector_ContactAddedListenerByValue::onContactAdded(btManifoldPoint &cp, int userValue0, int partId0, int index0, int userValue1, int partId1, int index1) {\r
+  bool c_result = SwigValueInit< bool >() ;\r
+  jboolean jresult = 0 ;\r
+  JNIEnvWrapper swigjnienv(this) ;\r
+  JNIEnv * jenv = swigjnienv.getJNIEnv() ;\r
+  jobject swigjobj = (jobject) NULL ;\r
+  jlong jcp = 0 ;\r
+  jint juserValue0  ;\r
+  jint jpartId0  ;\r
+  jint jindex0  ;\r
+  jint juserValue1  ;\r
+  jint jpartId1  ;\r
+  jint jindex1  ;\r
+  \r
+  if (!swig_override[0]) {\r
+    SWIG_JavaThrowException(JNIEnvWrapper(this).getJNIEnv(), SWIG_JavaDirectorPureVirtual, "Attempted to invoke pure virtual method ContactAddedListenerByValue::onContactAdded.");\r
+    return c_result;\r
+  }\r
+  swigjobj = swig_get_self(jenv);\r
+  if (swigjobj && jenv->IsSameObject(swigjobj, NULL) == JNI_FALSE) {\r
+    *(btManifoldPoint **)&jcp = (btManifoldPoint *) &cp; \r
+    juserValue0 = (jint) userValue0;\r
+    jpartId0 = (jint) partId0;\r
+    jindex0 = (jint) index0;\r
+    juserValue1 = (jint) userValue1;\r
+    jpartId1 = (jint) partId1;\r
+    jindex1 = (jint) index1;\r
+    jresult = (jboolean) jenv->CallStaticBooleanMethod(Swig::jclass_gdxBulletJNI, Swig::director_methids[40], swigjobj, jcp, juserValue0, jpartId0, jindex0, juserValue1, jpartId1, jindex1);\r
+    if (jenv->ExceptionCheck() == JNI_TRUE) return c_result;\r
+    c_result = jresult ? true : false; \r
+  } else {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null upcall object");\r
+  }\r
+  if (swigjobj) jenv->DeleteLocalRef(swigjobj);\r
+  return c_result;\r
+}\r
+\r
+void SwigDirector_ContactAddedListenerByValue::swig_connect_director(JNIEnv *jenv, jobject jself, jclass jcls, bool swig_mem_own, bool weak_global) {\r
+  static struct {\r
+    const char *mname;\r
+    const char *mdesc;\r
+    jmethodID base_methid;\r
+  } methods[] = {\r
+    {\r
+      "onContactAdded", "(Lcom/badlogic/gdx/physics/bullet/btManifoldPoint;IIIIII)Z", NULL \r
+    }\r
+  };\r
+  \r
+  static jclass baseclass = 0 ;\r
+  \r
+  if (swig_set_self(jenv, jself, swig_mem_own, weak_global)) {\r
+    if (!baseclass) {\r
+      baseclass = jenv->FindClass("com/badlogic/gdx/physics/bullet/ContactAddedListenerByValue");\r
+      if (!baseclass) return;\r
+      baseclass = (jclass) jenv->NewGlobalRef(baseclass);\r
+    }\r
+    bool derived = (jenv->IsSameObject(baseclass, jcls) ? false : true);\r
+    for (int i = 0; i < 1; ++i) {\r
+      if (!methods[i].base_methid) {\r
+        methods[i].base_methid = jenv->GetMethodID(baseclass, methods[i].mname, methods[i].mdesc);\r
+        if (!methods[i].base_methid) return;\r
+      }\r
+      swig_override[i] = false;\r
+      if (derived) {\r
+        jmethodID methid = jenv->GetMethodID(jcls, methods[i].mname, methods[i].mdesc);\r
+        swig_override[i] = (methid != methods[i].base_methid);\r
+        jenv->ExceptionClear();\r
+      }\r
+    }\r
+  }\r
+}\r
+\r
+\r
+SwigDirector_ContactProcessedListenerByObject::SwigDirector_ContactProcessedListenerByObject(JNIEnv *jenv) : ContactProcessedListenerByObject(), Swig::Director(jenv) {\r
+}\r
+\r
+bool SwigDirector_ContactProcessedListenerByObject::onContactProcessed(btManifoldPoint &cp, btCollisionObject const *colObj0, btCollisionObject const *colObj1) {\r
+  bool c_result = SwigValueInit< bool >() ;\r
+  jboolean jresult = 0 ;\r
+  JNIEnvWrapper swigjnienv(this) ;\r
+  JNIEnv * jenv = swigjnienv.getJNIEnv() ;\r
+  jobject swigjobj = (jobject) NULL ;\r
+  jlong jcp = 0 ;\r
+  jlong jcolObj0 = 0 ;\r
+  jlong jcolObj1 = 0 ;\r
+  \r
+  if (!swig_override[0]) {\r
+    SWIG_JavaThrowException(JNIEnvWrapper(this).getJNIEnv(), SWIG_JavaDirectorPureVirtual, "Attempted to invoke pure virtual method ContactProcessedListenerByObject::onContactProcessed.");\r
+    return c_result;\r
+  }\r
+  swigjobj = swig_get_self(jenv);\r
+  if (swigjobj && jenv->IsSameObject(swigjobj, NULL) == JNI_FALSE) {\r
+    *(btManifoldPoint **)&jcp = (btManifoldPoint *) &cp; \r
+    *((btCollisionObject **)&jcolObj0) = (btCollisionObject *) colObj0; \r
+    *((btCollisionObject **)&jcolObj1) = (btCollisionObject *) colObj1; \r
+    jresult = (jboolean) jenv->CallStaticBooleanMethod(Swig::jclass_gdxBulletJNI, Swig::director_methids[41], swigjobj, jcp, jcolObj0, jcolObj1);\r
+    if (jenv->ExceptionCheck() == JNI_TRUE) return c_result;\r
+    c_result = jresult ? true : false; \r
+  } else {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null upcall object");\r
+  }\r
+  if (swigjobj) jenv->DeleteLocalRef(swigjobj);\r
+  return c_result;\r
+}\r
+\r
+void SwigDirector_ContactProcessedListenerByObject::swig_connect_director(JNIEnv *jenv, jobject jself, jclass jcls, bool swig_mem_own, bool weak_global) {\r
+  static struct {\r
+    const char *mname;\r
+    const char *mdesc;\r
+    jmethodID base_methid;\r
+  } methods[] = {\r
+    {\r
+      "onContactProcessed", "(Lcom/badlogic/gdx/physics/bullet/btManifoldPoint;Lcom/badlogic/gdx/physics/bullet/btCollisionObject;Lcom/badlogic/gdx/physics/bullet/btCollisionObject;)Z", NULL \r
+    }\r
+  };\r
+  \r
+  static jclass baseclass = 0 ;\r
+  \r
+  if (swig_set_self(jenv, jself, swig_mem_own, weak_global)) {\r
+    if (!baseclass) {\r
+      baseclass = jenv->FindClass("com/badlogic/gdx/physics/bullet/ContactProcessedListenerByObject");\r
+      if (!baseclass) return;\r
+      baseclass = (jclass) jenv->NewGlobalRef(baseclass);\r
+    }\r
+    bool derived = (jenv->IsSameObject(baseclass, jcls) ? false : true);\r
+    for (int i = 0; i < 1; ++i) {\r
+      if (!methods[i].base_methid) {\r
+        methods[i].base_methid = jenv->GetMethodID(baseclass, methods[i].mname, methods[i].mdesc);\r
+        if (!methods[i].base_methid) return;\r
+      }\r
+      swig_override[i] = false;\r
+      if (derived) {\r
+        jmethodID methid = jenv->GetMethodID(jcls, methods[i].mname, methods[i].mdesc);\r
+        swig_override[i] = (methid != methods[i].base_methid);\r
+        jenv->ExceptionClear();\r
+      }\r
+    }\r
+  }\r
+}\r
+\r
+\r
+SwigDirector_ContactProcessedListenerByValue::SwigDirector_ContactProcessedListenerByValue(JNIEnv *jenv) : ContactProcessedListenerByValue(), Swig::Director(jenv) {\r
+}\r
+\r
+bool SwigDirector_ContactProcessedListenerByValue::onContactProcessed(btManifoldPoint &cp, int userValue0, int userValue1) {\r
+  bool c_result = SwigValueInit< bool >() ;\r
+  jboolean jresult = 0 ;\r
+  JNIEnvWrapper swigjnienv(this) ;\r
+  JNIEnv * jenv = swigjnienv.getJNIEnv() ;\r
+  jobject swigjobj = (jobject) NULL ;\r
+  jlong jcp = 0 ;\r
+  jint juserValue0  ;\r
+  jint juserValue1  ;\r
+  \r
+  if (!swig_override[0]) {\r
+    SWIG_JavaThrowException(JNIEnvWrapper(this).getJNIEnv(), SWIG_JavaDirectorPureVirtual, "Attempted to invoke pure virtual method ContactProcessedListenerByValue::onContactProcessed.");\r
+    return c_result;\r
+  }\r
+  swigjobj = swig_get_self(jenv);\r
+  if (swigjobj && jenv->IsSameObject(swigjobj, NULL) == JNI_FALSE) {\r
+    *(btManifoldPoint **)&jcp = (btManifoldPoint *) &cp; \r
+    juserValue0 = (jint) userValue0;\r
+    juserValue1 = (jint) userValue1;\r
+    jresult = (jboolean) jenv->CallStaticBooleanMethod(Swig::jclass_gdxBulletJNI, Swig::director_methids[42], swigjobj, jcp, juserValue0, juserValue1);\r
+    if (jenv->ExceptionCheck() == JNI_TRUE) return c_result;\r
+    c_result = jresult ? true : false; \r
+  } else {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null upcall object");\r
+  }\r
+  if (swigjobj) jenv->DeleteLocalRef(swigjobj);\r
+  return c_result;\r
+}\r
+\r
+void SwigDirector_ContactProcessedListenerByValue::swig_connect_director(JNIEnv *jenv, jobject jself, jclass jcls, bool swig_mem_own, bool weak_global) {\r
+  static struct {\r
+    const char *mname;\r
+    const char *mdesc;\r
+    jmethodID base_methid;\r
+  } methods[] = {\r
+    {\r
+      "onContactProcessed", "(Lcom/badlogic/gdx/physics/bullet/btManifoldPoint;II)Z", NULL \r
+    }\r
+  };\r
+  \r
+  static jclass baseclass = 0 ;\r
+  \r
+  if (swig_set_self(jenv, jself, swig_mem_own, weak_global)) {\r
+    if (!baseclass) {\r
+      baseclass = jenv->FindClass("com/badlogic/gdx/physics/bullet/ContactProcessedListenerByValue");\r
+      if (!baseclass) return;\r
+      baseclass = (jclass) jenv->NewGlobalRef(baseclass);\r
+    }\r
+    bool derived = (jenv->IsSameObject(baseclass, jcls) ? false : true);\r
+    for (int i = 0; i < 1; ++i) {\r
+      if (!methods[i].base_methid) {\r
+        methods[i].base_methid = jenv->GetMethodID(baseclass, methods[i].mname, methods[i].mdesc);\r
+        if (!methods[i].base_methid) return;\r
+      }\r
+      swig_override[i] = false;\r
+      if (derived) {\r
+        jmethodID methid = jenv->GetMethodID(jcls, methods[i].mname, methods[i].mdesc);\r
+        swig_override[i] = (methid != methods[i].base_methid);\r
+        jenv->ExceptionClear();\r
+      }\r
+    }\r
+  }\r
+}\r
+\r
+\r
+SwigDirector_ContactDestroyedListener::SwigDirector_ContactDestroyedListener(JNIEnv *jenv) : ContactDestroyedListener(), Swig::Director(jenv) {\r
+}\r
+\r
+bool SwigDirector_ContactDestroyedListener::onContactDestroyed(int manifoldPointUserValue) {\r
+  bool c_result = SwigValueInit< bool >() ;\r
+  jboolean jresult = 0 ;\r
+  JNIEnvWrapper swigjnienv(this) ;\r
+  JNIEnv * jenv = swigjnienv.getJNIEnv() ;\r
+  jobject swigjobj = (jobject) NULL ;\r
+  jint jmanifoldPointUserValue  ;\r
+  \r
+  if (!swig_override[0]) {\r
+    SWIG_JavaThrowException(JNIEnvWrapper(this).getJNIEnv(), SWIG_JavaDirectorPureVirtual, "Attempted to invoke pure virtual method ContactDestroyedListener::onContactDestroyed.");\r
+    return c_result;\r
+  }\r
+  swigjobj = swig_get_self(jenv);\r
+  if (swigjobj && jenv->IsSameObject(swigjobj, NULL) == JNI_FALSE) {\r
+    jmanifoldPointUserValue = (jint) manifoldPointUserValue;\r
+    jresult = (jboolean) jenv->CallStaticBooleanMethod(Swig::jclass_gdxBulletJNI, Swig::director_methids[43], swigjobj, jmanifoldPointUserValue);\r
+    if (jenv->ExceptionCheck() == JNI_TRUE) return c_result;\r
+    c_result = jresult ? true : false; \r
+  } else {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null upcall object");\r
+  }\r
+  if (swigjobj) jenv->DeleteLocalRef(swigjobj);\r
+  return c_result;\r
+}\r
+\r
+void SwigDirector_ContactDestroyedListener::swig_connect_director(JNIEnv *jenv, jobject jself, jclass jcls, bool swig_mem_own, bool weak_global) {\r
+  static struct {\r
+    const char *mname;\r
+    const char *mdesc;\r
+    jmethodID base_methid;\r
+  } methods[] = {\r
+    {\r
+      "onContactDestroyed", "(I)Z", NULL \r
+    }\r
+  };\r
+  \r
+  static jclass baseclass = 0 ;\r
+  \r
+  if (swig_set_self(jenv, jself, swig_mem_own, weak_global)) {\r
+    if (!baseclass) {\r
+      baseclass = jenv->FindClass("com/badlogic/gdx/physics/bullet/ContactDestroyedListener");\r
+      if (!baseclass) return;\r
+      baseclass = (jclass) jenv->NewGlobalRef(baseclass);\r
+    }\r
+    bool derived = (jenv->IsSameObject(baseclass, jcls) ? false : true);\r
+    for (int i = 0; i < 1; ++i) {\r
+      if (!methods[i].base_methid) {\r
+        methods[i].base_methid = jenv->GetMethodID(baseclass, methods[i].mname, methods[i].mdesc);\r
+        if (!methods[i].base_methid) return;\r
+      }\r
+      swig_override[i] = false;\r
+      if (derived) {\r
+        jmethodID methid = jenv->GetMethodID(jcls, methods[i].mname, methods[i].mdesc);\r
+        swig_override[i] = (methid != methods[i].base_methid);\r
+        jenv->ExceptionClear();\r
+      }\r
+    }\r
+  }\r
+}\r
+\r
+\r
 \r
 #ifdef __cplusplus\r
 extern "C" {\r
@@ -32220,6 +32666,35 @@ SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btColl
 }\r
 \r
 \r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btCollisionObject_1internalSetGdxBridge(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
+  btCollisionObject *arg1 = (btCollisionObject *) 0 ;\r
+  GdxCollisionObjectBridge *arg2 = (GdxCollisionObjectBridge *) 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  arg1 = *(btCollisionObject **)&jarg1; \r
+  arg2 = *(GdxCollisionObjectBridge **)&jarg2; \r
+  btCollisionObject_internalSetGdxBridge(arg1,arg2);\r
+}\r
+\r
+\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btCollisionObject_1internalGetGdxBridge(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  jlong jresult = 0 ;\r
+  btCollisionObject *arg1 = (btCollisionObject *) 0 ;\r
+  GdxCollisionObjectBridge *result = 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  arg1 = *(btCollisionObject **)&jarg1; \r
+  result = (GdxCollisionObjectBridge *)btCollisionObject_internalGetGdxBridge(arg1);\r
+  *(GdxCollisionObjectBridge **)&jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
 SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btCollisionObject_1getAnisotropicFriction_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) {\r
   btCollisionObject *arg1 = (btCollisionObject *) 0 ;\r
   btVector3 *arg2 = 0 ;\r
@@ -33739,6 +34214,56 @@ SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_delete
 }\r
 \r
 \r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_GdxCollisionObjectBridge_1userValue_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {\r
+  GdxCollisionObjectBridge *arg1 = (GdxCollisionObjectBridge *) 0 ;\r
+  int arg2 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  arg1 = *(GdxCollisionObjectBridge **)&jarg1; \r
+  arg2 = (int)jarg2; \r
+  if (arg1) (arg1)->userValue = arg2;\r
+}\r
+\r
+\r
+SWIGEXPORT jint JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_GdxCollisionObjectBridge_1userValue_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  jint jresult = 0 ;\r
+  GdxCollisionObjectBridge *arg1 = (GdxCollisionObjectBridge *) 0 ;\r
+  int result;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  arg1 = *(GdxCollisionObjectBridge **)&jarg1; \r
+  result = (int) ((arg1)->userValue);\r
+  jresult = (jint)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1GdxCollisionObjectBridge(JNIEnv *jenv, jclass jcls) {\r
+  jlong jresult = 0 ;\r
+  GdxCollisionObjectBridge *result = 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  result = (GdxCollisionObjectBridge *)new GdxCollisionObjectBridge();\r
+  *(GdxCollisionObjectBridge **)&jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_delete_1GdxCollisionObjectBridge(JNIEnv *jenv, jclass jcls, jlong jarg1) {\r
+  GdxCollisionObjectBridge *arg1 = (GdxCollisionObjectBridge *) 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  arg1 = *(GdxCollisionObjectBridge **)&jarg1; \r
+  delete arg1;\r
+}\r
+\r
+\r
 SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btRigidBodyConstructionInfo_1m_1mass_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2) {\r
   btRigidBodyConstructionInfo *arg1 = (btRigidBodyConstructionInfo *) 0 ;\r
   btScalar arg2 ;\r
@@ -44871,6 +45396,34 @@ SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btMa
 }\r
 \r
 \r
+SWIGEXPORT jint JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btManifoldPoint_1getUserValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  jint jresult = 0 ;\r
+  btManifoldPoint *arg1 = (btManifoldPoint *) 0 ;\r
+  int result;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  arg1 = *(btManifoldPoint **)&jarg1; \r
+  result = (int)btManifoldPoint_getUserValue(arg1);\r
+  jresult = (jint)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btManifoldPoint_1setUserValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {\r
+  btManifoldPoint *arg1 = (btManifoldPoint *) 0 ;\r
+  int arg2 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  arg1 = *(btManifoldPoint **)&jarg1; \r
+  arg2 = (int)jarg2; \r
+  btManifoldPoint_setUserValue(arg1,arg2);\r
+}\r
+\r
+\r
 SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_delete_1btManifoldPoint(JNIEnv *jenv, jclass jcls, jlong jarg1) {\r
   btManifoldPoint *arg1 = (btManifoldPoint *) 0 ;\r
   \r
@@ -49632,6 +50185,590 @@ SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_Intern
 }\r
 \r
 \r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_BaseContactAddedListener_1enable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  BaseContactAddedListener *arg1 = (BaseContactAddedListener *) 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  arg1 = *(BaseContactAddedListener **)&jarg1; \r
+  (arg1)->enable();\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_BaseContactAddedListener_1disable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  BaseContactAddedListener *arg1 = (BaseContactAddedListener *) 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  arg1 = *(BaseContactAddedListener **)&jarg1; \r
+  (arg1)->disable();\r
+}\r
+\r
+\r
+SWIGEXPORT jboolean JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_BaseContactAddedListener_1isEnabled(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  jboolean jresult = 0 ;\r
+  BaseContactAddedListener *arg1 = (BaseContactAddedListener *) 0 ;\r
+  bool result;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  arg1 = *(BaseContactAddedListener **)&jarg1; \r
+  result = (bool)(arg1)->isEnabled();\r
+  jresult = (jboolean)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1BaseContactAddedListener(JNIEnv *jenv, jclass jcls) {\r
+  jlong jresult = 0 ;\r
+  BaseContactAddedListener *result = 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  result = (BaseContactAddedListener *)new BaseContactAddedListener();\r
+  *(BaseContactAddedListener **)&jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_delete_1BaseContactAddedListener(JNIEnv *jenv, jclass jcls, jlong jarg1) {\r
+  BaseContactAddedListener *arg1 = (BaseContactAddedListener *) 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  arg1 = *(BaseContactAddedListener **)&jarg1; \r
+  delete arg1;\r
+}\r
+\r
+\r
+SWIGEXPORT jboolean JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactAddedListenerByWrapper_1onContactAdded(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_, jint jarg4, jint jarg5, jlong jarg6, jobject jarg6_, jint jarg7, jint jarg8) {\r
+  jboolean jresult = 0 ;\r
+  ContactAddedListenerByWrapper *arg1 = (ContactAddedListenerByWrapper *) 0 ;\r
+  btManifoldPoint *arg2 = 0 ;\r
+  btCollisionObjectWrapper *arg3 = (btCollisionObjectWrapper *) 0 ;\r
+  int arg4 ;\r
+  int arg5 ;\r
+  btCollisionObjectWrapper *arg6 = (btCollisionObjectWrapper *) 0 ;\r
+  int arg7 ;\r
+  int arg8 ;\r
+  bool result;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  (void)jarg3_;\r
+  (void)jarg6_;\r
+  arg1 = *(ContactAddedListenerByWrapper **)&jarg1; \r
+  arg2 = *(btManifoldPoint **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btManifoldPoint & reference is null");\r
+    return 0;\r
+  } \r
+  arg3 = *(btCollisionObjectWrapper **)&jarg3; \r
+  arg4 = (int)jarg4; \r
+  arg5 = (int)jarg5; \r
+  arg6 = *(btCollisionObjectWrapper **)&jarg6; \r
+  arg7 = (int)jarg7; \r
+  arg8 = (int)jarg8; \r
+  result = (bool)(arg1)->onContactAdded(*arg2,(btCollisionObjectWrapper const *)arg3,arg4,arg5,(btCollisionObjectWrapper const *)arg6,arg7,arg8);\r
+  jresult = (jboolean)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1ContactAddedListenerByWrapper(JNIEnv *jenv, jclass jcls) {\r
+  jlong jresult = 0 ;\r
+  ContactAddedListenerByWrapper *result = 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  result = (ContactAddedListenerByWrapper *)new SwigDirector_ContactAddedListenerByWrapper(jenv);\r
+  *(ContactAddedListenerByWrapper **)&jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_delete_1ContactAddedListenerByWrapper(JNIEnv *jenv, jclass jcls, jlong jarg1) {\r
+  ContactAddedListenerByWrapper *arg1 = (ContactAddedListenerByWrapper *) 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  arg1 = *(ContactAddedListenerByWrapper **)&jarg1; \r
+  delete arg1;\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactAddedListenerByWrapper_1director_1connect(JNIEnv *jenv, jclass jcls, jobject jself, jlong objarg, jboolean jswig_mem_own, jboolean jweak_global) {\r
+  ContactAddedListenerByWrapper *obj = *((ContactAddedListenerByWrapper **)&objarg);\r
+  (void)jcls;\r
+  SwigDirector_ContactAddedListenerByWrapper *director = (SwigDirector_ContactAddedListenerByWrapper *)(obj);\r
+  if (director) {\r
+    director->swig_connect_director(jenv, jself, jenv->GetObjectClass(jself), (jswig_mem_own == JNI_TRUE), (jweak_global == JNI_TRUE));\r
+  }\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactAddedListenerByWrapper_1change_1ownership(JNIEnv *jenv, jclass jcls, jobject jself, jlong objarg, jboolean jtake_or_release) {\r
+  ContactAddedListenerByWrapper *obj = *((ContactAddedListenerByWrapper **)&objarg);\r
+  SwigDirector_ContactAddedListenerByWrapper *director = (SwigDirector_ContactAddedListenerByWrapper *)(obj);\r
+  (void)jcls;\r
+  if (director) {\r
+    director->swig_java_change_ownership(jenv, jself, jtake_or_release ? true : false);\r
+  }\r
+}\r
+\r
+\r
+SWIGEXPORT jboolean JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactAddedListenerByObject_1onContactAdded(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_, jint jarg4, jint jarg5, jlong jarg6, jobject jarg6_, jint jarg7, jint jarg8) {\r
+  jboolean jresult = 0 ;\r
+  ContactAddedListenerByObject *arg1 = (ContactAddedListenerByObject *) 0 ;\r
+  btManifoldPoint *arg2 = 0 ;\r
+  btCollisionObject *arg3 = (btCollisionObject *) 0 ;\r
+  int arg4 ;\r
+  int arg5 ;\r
+  btCollisionObject *arg6 = (btCollisionObject *) 0 ;\r
+  int arg7 ;\r
+  int arg8 ;\r
+  bool result;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  (void)jarg3_;\r
+  (void)jarg6_;\r
+  arg1 = *(ContactAddedListenerByObject **)&jarg1; \r
+  arg2 = *(btManifoldPoint **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btManifoldPoint & reference is null");\r
+    return 0;\r
+  } \r
+  arg3 = *(btCollisionObject **)&jarg3; \r
+  arg4 = (int)jarg4; \r
+  arg5 = (int)jarg5; \r
+  arg6 = *(btCollisionObject **)&jarg6; \r
+  arg7 = (int)jarg7; \r
+  arg8 = (int)jarg8; \r
+  result = (bool)(arg1)->onContactAdded(*arg2,(btCollisionObject const *)arg3,arg4,arg5,(btCollisionObject const *)arg6,arg7,arg8);\r
+  jresult = (jboolean)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1ContactAddedListenerByObject(JNIEnv *jenv, jclass jcls) {\r
+  jlong jresult = 0 ;\r
+  ContactAddedListenerByObject *result = 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  result = (ContactAddedListenerByObject *)new SwigDirector_ContactAddedListenerByObject(jenv);\r
+  *(ContactAddedListenerByObject **)&jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_delete_1ContactAddedListenerByObject(JNIEnv *jenv, jclass jcls, jlong jarg1) {\r
+  ContactAddedListenerByObject *arg1 = (ContactAddedListenerByObject *) 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  arg1 = *(ContactAddedListenerByObject **)&jarg1; \r
+  delete arg1;\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactAddedListenerByObject_1director_1connect(JNIEnv *jenv, jclass jcls, jobject jself, jlong objarg, jboolean jswig_mem_own, jboolean jweak_global) {\r
+  ContactAddedListenerByObject *obj = *((ContactAddedListenerByObject **)&objarg);\r
+  (void)jcls;\r
+  SwigDirector_ContactAddedListenerByObject *director = (SwigDirector_ContactAddedListenerByObject *)(obj);\r
+  if (director) {\r
+    director->swig_connect_director(jenv, jself, jenv->GetObjectClass(jself), (jswig_mem_own == JNI_TRUE), (jweak_global == JNI_TRUE));\r
+  }\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactAddedListenerByObject_1change_1ownership(JNIEnv *jenv, jclass jcls, jobject jself, jlong objarg, jboolean jtake_or_release) {\r
+  ContactAddedListenerByObject *obj = *((ContactAddedListenerByObject **)&objarg);\r
+  SwigDirector_ContactAddedListenerByObject *director = (SwigDirector_ContactAddedListenerByObject *)(obj);\r
+  (void)jcls;\r
+  if (director) {\r
+    director->swig_java_change_ownership(jenv, jself, jtake_or_release ? true : false);\r
+  }\r
+}\r
+\r
+\r
+SWIGEXPORT jboolean JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactAddedListenerByValue_1onContactAdded(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jint jarg3, jint jarg4, jint jarg5, jint jarg6, jint jarg7, jint jarg8) {\r
+  jboolean jresult = 0 ;\r
+  ContactAddedListenerByValue *arg1 = (ContactAddedListenerByValue *) 0 ;\r
+  btManifoldPoint *arg2 = 0 ;\r
+  int arg3 ;\r
+  int arg4 ;\r
+  int arg5 ;\r
+  int arg6 ;\r
+  int arg7 ;\r
+  int arg8 ;\r
+  bool result;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  arg1 = *(ContactAddedListenerByValue **)&jarg1; \r
+  arg2 = *(btManifoldPoint **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btManifoldPoint & reference is null");\r
+    return 0;\r
+  } \r
+  arg3 = (int)jarg3; \r
+  arg4 = (int)jarg4; \r
+  arg5 = (int)jarg5; \r
+  arg6 = (int)jarg6; \r
+  arg7 = (int)jarg7; \r
+  arg8 = (int)jarg8; \r
+  result = (bool)(arg1)->onContactAdded(*arg2,arg3,arg4,arg5,arg6,arg7,arg8);\r
+  jresult = (jboolean)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1ContactAddedListenerByValue(JNIEnv *jenv, jclass jcls) {\r
+  jlong jresult = 0 ;\r
+  ContactAddedListenerByValue *result = 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  result = (ContactAddedListenerByValue *)new SwigDirector_ContactAddedListenerByValue(jenv);\r
+  *(ContactAddedListenerByValue **)&jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_delete_1ContactAddedListenerByValue(JNIEnv *jenv, jclass jcls, jlong jarg1) {\r
+  ContactAddedListenerByValue *arg1 = (ContactAddedListenerByValue *) 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  arg1 = *(ContactAddedListenerByValue **)&jarg1; \r
+  delete arg1;\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactAddedListenerByValue_1director_1connect(JNIEnv *jenv, jclass jcls, jobject jself, jlong objarg, jboolean jswig_mem_own, jboolean jweak_global) {\r
+  ContactAddedListenerByValue *obj = *((ContactAddedListenerByValue **)&objarg);\r
+  (void)jcls;\r
+  SwigDirector_ContactAddedListenerByValue *director = (SwigDirector_ContactAddedListenerByValue *)(obj);\r
+  if (director) {\r
+    director->swig_connect_director(jenv, jself, jenv->GetObjectClass(jself), (jswig_mem_own == JNI_TRUE), (jweak_global == JNI_TRUE));\r
+  }\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactAddedListenerByValue_1change_1ownership(JNIEnv *jenv, jclass jcls, jobject jself, jlong objarg, jboolean jtake_or_release) {\r
+  ContactAddedListenerByValue *obj = *((ContactAddedListenerByValue **)&objarg);\r
+  SwigDirector_ContactAddedListenerByValue *director = (SwigDirector_ContactAddedListenerByValue *)(obj);\r
+  (void)jcls;\r
+  if (director) {\r
+    director->swig_java_change_ownership(jenv, jself, jtake_or_release ? true : false);\r
+  }\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_BaseContactProcessedListener_1enable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  BaseContactProcessedListener *arg1 = (BaseContactProcessedListener *) 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  arg1 = *(BaseContactProcessedListener **)&jarg1; \r
+  (arg1)->enable();\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_BaseContactProcessedListener_1disable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  BaseContactProcessedListener *arg1 = (BaseContactProcessedListener *) 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  arg1 = *(BaseContactProcessedListener **)&jarg1; \r
+  (arg1)->disable();\r
+}\r
+\r
+\r
+SWIGEXPORT jboolean JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_BaseContactProcessedListener_1isEnabled(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  jboolean jresult = 0 ;\r
+  BaseContactProcessedListener *arg1 = (BaseContactProcessedListener *) 0 ;\r
+  bool result;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  arg1 = *(BaseContactProcessedListener **)&jarg1; \r
+  result = (bool)(arg1)->isEnabled();\r
+  jresult = (jboolean)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1BaseContactProcessedListener(JNIEnv *jenv, jclass jcls) {\r
+  jlong jresult = 0 ;\r
+  BaseContactProcessedListener *result = 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  result = (BaseContactProcessedListener *)new BaseContactProcessedListener();\r
+  *(BaseContactProcessedListener **)&jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_delete_1BaseContactProcessedListener(JNIEnv *jenv, jclass jcls, jlong jarg1) {\r
+  BaseContactProcessedListener *arg1 = (BaseContactProcessedListener *) 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  arg1 = *(BaseContactProcessedListener **)&jarg1; \r
+  delete arg1;\r
+}\r
+\r
+\r
+SWIGEXPORT jboolean JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactProcessedListenerByObject_1onContactProcessed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_, jlong jarg4, jobject jarg4_) {\r
+  jboolean jresult = 0 ;\r
+  ContactProcessedListenerByObject *arg1 = (ContactProcessedListenerByObject *) 0 ;\r
+  btManifoldPoint *arg2 = 0 ;\r
+  btCollisionObject *arg3 = (btCollisionObject *) 0 ;\r
+  btCollisionObject *arg4 = (btCollisionObject *) 0 ;\r
+  bool result;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  (void)jarg3_;\r
+  (void)jarg4_;\r
+  arg1 = *(ContactProcessedListenerByObject **)&jarg1; \r
+  arg2 = *(btManifoldPoint **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btManifoldPoint & reference is null");\r
+    return 0;\r
+  } \r
+  arg3 = *(btCollisionObject **)&jarg3; \r
+  arg4 = *(btCollisionObject **)&jarg4; \r
+  result = (bool)(arg1)->onContactProcessed(*arg2,(btCollisionObject const *)arg3,(btCollisionObject const *)arg4);\r
+  jresult = (jboolean)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1ContactProcessedListenerByObject(JNIEnv *jenv, jclass jcls) {\r
+  jlong jresult = 0 ;\r
+  ContactProcessedListenerByObject *result = 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  result = (ContactProcessedListenerByObject *)new SwigDirector_ContactProcessedListenerByObject(jenv);\r
+  *(ContactProcessedListenerByObject **)&jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_delete_1ContactProcessedListenerByObject(JNIEnv *jenv, jclass jcls, jlong jarg1) {\r
+  ContactProcessedListenerByObject *arg1 = (ContactProcessedListenerByObject *) 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  arg1 = *(ContactProcessedListenerByObject **)&jarg1; \r
+  delete arg1;\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactProcessedListenerByObject_1director_1connect(JNIEnv *jenv, jclass jcls, jobject jself, jlong objarg, jboolean jswig_mem_own, jboolean jweak_global) {\r
+  ContactProcessedListenerByObject *obj = *((ContactProcessedListenerByObject **)&objarg);\r
+  (void)jcls;\r
+  SwigDirector_ContactProcessedListenerByObject *director = (SwigDirector_ContactProcessedListenerByObject *)(obj);\r
+  if (director) {\r
+    director->swig_connect_director(jenv, jself, jenv->GetObjectClass(jself), (jswig_mem_own == JNI_TRUE), (jweak_global == JNI_TRUE));\r
+  }\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactProcessedListenerByObject_1change_1ownership(JNIEnv *jenv, jclass jcls, jobject jself, jlong objarg, jboolean jtake_or_release) {\r
+  ContactProcessedListenerByObject *obj = *((ContactProcessedListenerByObject **)&objarg);\r
+  SwigDirector_ContactProcessedListenerByObject *director = (SwigDirector_ContactProcessedListenerByObject *)(obj);\r
+  (void)jcls;\r
+  if (director) {\r
+    director->swig_java_change_ownership(jenv, jself, jtake_or_release ? true : false);\r
+  }\r
+}\r
+\r
+\r
+SWIGEXPORT jboolean JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactProcessedListenerByValue_1onContactProcessed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jint jarg3, jint jarg4) {\r
+  jboolean jresult = 0 ;\r
+  ContactProcessedListenerByValue *arg1 = (ContactProcessedListenerByValue *) 0 ;\r
+  btManifoldPoint *arg2 = 0 ;\r
+  int arg3 ;\r
+  int arg4 ;\r
+  bool result;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  arg1 = *(ContactProcessedListenerByValue **)&jarg1; \r
+  arg2 = *(btManifoldPoint **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btManifoldPoint & reference is null");\r
+    return 0;\r
+  } \r
+  arg3 = (int)jarg3; \r
+  arg4 = (int)jarg4; \r
+  result = (bool)(arg1)->onContactProcessed(*arg2,arg3,arg4);\r
+  jresult = (jboolean)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1ContactProcessedListenerByValue(JNIEnv *jenv, jclass jcls) {\r
+  jlong jresult = 0 ;\r
+  ContactProcessedListenerByValue *result = 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  result = (ContactProcessedListenerByValue *)new SwigDirector_ContactProcessedListenerByValue(jenv);\r
+  *(ContactProcessedListenerByValue **)&jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_delete_1ContactProcessedListenerByValue(JNIEnv *jenv, jclass jcls, jlong jarg1) {\r
+  ContactProcessedListenerByValue *arg1 = (ContactProcessedListenerByValue *) 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  arg1 = *(ContactProcessedListenerByValue **)&jarg1; \r
+  delete arg1;\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactProcessedListenerByValue_1director_1connect(JNIEnv *jenv, jclass jcls, jobject jself, jlong objarg, jboolean jswig_mem_own, jboolean jweak_global) {\r
+  ContactProcessedListenerByValue *obj = *((ContactProcessedListenerByValue **)&objarg);\r
+  (void)jcls;\r
+  SwigDirector_ContactProcessedListenerByValue *director = (SwigDirector_ContactProcessedListenerByValue *)(obj);\r
+  if (director) {\r
+    director->swig_connect_director(jenv, jself, jenv->GetObjectClass(jself), (jswig_mem_own == JNI_TRUE), (jweak_global == JNI_TRUE));\r
+  }\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactProcessedListenerByValue_1change_1ownership(JNIEnv *jenv, jclass jcls, jobject jself, jlong objarg, jboolean jtake_or_release) {\r
+  ContactProcessedListenerByValue *obj = *((ContactProcessedListenerByValue **)&objarg);\r
+  SwigDirector_ContactProcessedListenerByValue *director = (SwigDirector_ContactProcessedListenerByValue *)(obj);\r
+  (void)jcls;\r
+  if (director) {\r
+    director->swig_java_change_ownership(jenv, jself, jtake_or_release ? true : false);\r
+  }\r
+}\r
+\r
+\r
+SWIGEXPORT jboolean JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactDestroyedListener_1onContactDestroyed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {\r
+  jboolean jresult = 0 ;\r
+  ContactDestroyedListener *arg1 = (ContactDestroyedListener *) 0 ;\r
+  int arg2 ;\r
+  bool result;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  arg1 = *(ContactDestroyedListener **)&jarg1; \r
+  arg2 = (int)jarg2; \r
+  result = (bool)(arg1)->onContactDestroyed(arg2);\r
+  jresult = (jboolean)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactDestroyedListener_1enable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  ContactDestroyedListener *arg1 = (ContactDestroyedListener *) 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  arg1 = *(ContactDestroyedListener **)&jarg1; \r
+  (arg1)->enable();\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactDestroyedListener_1disable(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  ContactDestroyedListener *arg1 = (ContactDestroyedListener *) 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  arg1 = *(ContactDestroyedListener **)&jarg1; \r
+  (arg1)->disable();\r
+}\r
+\r
+\r
+SWIGEXPORT jboolean JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactDestroyedListener_1isEnabled(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  jboolean jresult = 0 ;\r
+  ContactDestroyedListener *arg1 = (ContactDestroyedListener *) 0 ;\r
+  bool result;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  (void)jarg1_;\r
+  arg1 = *(ContactDestroyedListener **)&jarg1; \r
+  result = (bool)(arg1)->isEnabled();\r
+  jresult = (jboolean)result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1ContactDestroyedListener(JNIEnv *jenv, jclass jcls) {\r
+  jlong jresult = 0 ;\r
+  ContactDestroyedListener *result = 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  result = (ContactDestroyedListener *)new SwigDirector_ContactDestroyedListener(jenv);\r
+  *(ContactDestroyedListener **)&jresult = result; \r
+  return jresult;\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_delete_1ContactDestroyedListener(JNIEnv *jenv, jclass jcls, jlong jarg1) {\r
+  ContactDestroyedListener *arg1 = (ContactDestroyedListener *) 0 ;\r
+  \r
+  (void)jenv;\r
+  (void)jcls;\r
+  arg1 = *(ContactDestroyedListener **)&jarg1; \r
+  delete arg1;\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactDestroyedListener_1director_1connect(JNIEnv *jenv, jclass jcls, jobject jself, jlong objarg, jboolean jswig_mem_own, jboolean jweak_global) {\r
+  ContactDestroyedListener *obj = *((ContactDestroyedListener **)&objarg);\r
+  (void)jcls;\r
+  SwigDirector_ContactDestroyedListener *director = (SwigDirector_ContactDestroyedListener *)(obj);\r
+  if (director) {\r
+    director->swig_connect_director(jenv, jself, jenv->GetObjectClass(jself), (jswig_mem_own == JNI_TRUE), (jweak_global == JNI_TRUE));\r
+  }\r
+}\r
+\r
+\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactDestroyedListener_1change_1ownership(JNIEnv *jenv, jclass jcls, jobject jself, jlong objarg, jboolean jtake_or_release) {\r
+  ContactDestroyedListener *obj = *((ContactDestroyedListener **)&objarg);\r
+  SwigDirector_ContactDestroyedListener *director = (SwigDirector_ContactDestroyedListener *)(obj);\r
+  (void)jcls;\r
+  if (director) {\r
+    director->swig_java_change_ownership(jenv, jself, jtake_or_release ? true : false);\r
+  }\r
+}\r
+\r
+\r
 SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1btSimpleDynamicsWorld(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_, jlong jarg4, jobject jarg4_) {\r
   jlong jresult = 0 ;\r
   btDispatcher *arg1 = (btDispatcher *) 0 ;\r
@@ -76586,6 +77723,46 @@ SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btDyn
     return baseptr;\r
 }\r
 \r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactAddedListenerByWrapper_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {\r
+    jlong baseptr = 0;\r
+    (void)jenv;\r
+    (void)jcls;\r
+    *(BaseContactAddedListener **)&baseptr = *(ContactAddedListenerByWrapper **)&jarg1;\r
+    return baseptr;\r
+}\r
+\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactAddedListenerByObject_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {\r
+    jlong baseptr = 0;\r
+    (void)jenv;\r
+    (void)jcls;\r
+    *(BaseContactAddedListener **)&baseptr = *(ContactAddedListenerByObject **)&jarg1;\r
+    return baseptr;\r
+}\r
+\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactAddedListenerByValue_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {\r
+    jlong baseptr = 0;\r
+    (void)jenv;\r
+    (void)jcls;\r
+    *(BaseContactAddedListener **)&baseptr = *(ContactAddedListenerByValue **)&jarg1;\r
+    return baseptr;\r
+}\r
+\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactProcessedListenerByObject_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {\r
+    jlong baseptr = 0;\r
+    (void)jenv;\r
+    (void)jcls;\r
+    *(BaseContactProcessedListener **)&baseptr = *(ContactProcessedListenerByObject **)&jarg1;\r
+    return baseptr;\r
+}\r
+\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ContactProcessedListenerByValue_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {\r
+    jlong baseptr = 0;\r
+    (void)jenv;\r
+    (void)jcls;\r
+    *(BaseContactProcessedListener **)&baseptr = *(ContactProcessedListenerByValue **)&jarg1;\r
+    return baseptr;\r
+}\r
+\r
 SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btSimpleDynamicsWorld_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {\r
     jlong baseptr = 0;\r
     (void)jenv;\r
@@ -76856,7 +78033,7 @@ SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_swig_1
   static struct {\r
     const char *method;\r
     const char *signature;\r
-  } methods[38] = {\r
+  } methods[44] = {\r
     {\r
       "SwigDirector_btIDebugDraw_drawLine__SWIG_0", "(Lcom/badlogic/gdx/physics/bullet/btIDebugDraw;JJJ)V" \r
     },\r
@@ -76970,6 +78147,24 @@ SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_swig_1
     },\r
     {\r
       "SwigDirector_InternalTickCallback_onInternalTick", "(Lcom/badlogic/gdx/physics/bullet/InternalTickCallback;JF)V" \r
+    },\r
+    {\r
+      "SwigDirector_ContactAddedListenerByWrapper_onContactAdded", "(Lcom/badlogic/gdx/physics/bullet/ContactAddedListenerByWrapper;JJIIJII)Z" \r
+    },\r
+    {\r
+      "SwigDirector_ContactAddedListenerByObject_onContactAdded", "(Lcom/badlogic/gdx/physics/bullet/ContactAddedListenerByObject;JJIIJII)Z" \r
+    },\r
+    {\r
+      "SwigDirector_ContactAddedListenerByValue_onContactAdded", "(Lcom/badlogic/gdx/physics/bullet/ContactAddedListenerByValue;JIIIIII)Z" \r
+    },\r
+    {\r
+      "SwigDirector_ContactProcessedListenerByObject_onContactProcessed", "(Lcom/badlogic/gdx/physics/bullet/ContactProcessedListenerByObject;JJJ)Z" \r
+    },\r
+    {\r
+      "SwigDirector_ContactProcessedListenerByValue_onContactProcessed", "(Lcom/badlogic/gdx/physics/bullet/ContactProcessedListenerByValue;JII)Z" \r
+    },\r
+    {\r
+      "SwigDirector_ContactDestroyedListener_onContactDestroyed", "(Lcom/badlogic/gdx/physics/bullet/ContactDestroyedListener;I)Z" \r
     }\r
   };\r
   Swig::jclass_gdxBulletJNI = (jclass) jenv->NewGlobalRef(jcls);\r
index 031a840..77d51f3 100755 (executable)
@@ -172,5 +172,89 @@ protected:
     bool swig_override[1];\r
 };\r
 \r
+class SwigDirector_ContactAddedListenerByWrapper : public ContactAddedListenerByWrapper, public Swig::Director {\r
+\r
+public:\r
+    void swig_connect_director(JNIEnv *jenv, jobject jself, jclass jcls, bool swig_mem_own, bool weak_global);\r
+    SwigDirector_ContactAddedListenerByWrapper(JNIEnv *jenv);\r
+    virtual bool onContactAdded(btManifoldPoint &cp, btCollisionObjectWrapper const *colObj0Wrap, int partId0, int index0, btCollisionObjectWrapper const *colObj1Wrap, int partId1, int index1);\r
+public:\r
+    bool swig_overrides(int n) {\r
+      return (n < 1 ? swig_override[n] : false);\r
+    }\r
+protected:\r
+    bool swig_override[1];\r
+};\r
+\r
+class SwigDirector_ContactAddedListenerByObject : public ContactAddedListenerByObject, public Swig::Director {\r
+\r
+public:\r
+    void swig_connect_director(JNIEnv *jenv, jobject jself, jclass jcls, bool swig_mem_own, bool weak_global);\r
+    SwigDirector_ContactAddedListenerByObject(JNIEnv *jenv);\r
+    virtual bool onContactAdded(btManifoldPoint &cp, btCollisionObject const *colObj0Wrap, int partId0, int index0, btCollisionObject const *colObj1Wrap, int partId1, int index1);\r
+public:\r
+    bool swig_overrides(int n) {\r
+      return (n < 1 ? swig_override[n] : false);\r
+    }\r
+protected:\r
+    bool swig_override[1];\r
+};\r
+\r
+class SwigDirector_ContactAddedListenerByValue : public ContactAddedListenerByValue, public Swig::Director {\r
+\r
+public:\r
+    void swig_connect_director(JNIEnv *jenv, jobject jself, jclass jcls, bool swig_mem_own, bool weak_global);\r
+    SwigDirector_ContactAddedListenerByValue(JNIEnv *jenv);\r
+    virtual bool onContactAdded(btManifoldPoint &cp, int userValue0, int partId0, int index0, int userValue1, int partId1, int index1);\r
+public:\r
+    bool swig_overrides(int n) {\r
+      return (n < 1 ? swig_override[n] : false);\r
+    }\r
+protected:\r
+    bool swig_override[1];\r
+};\r
+\r
+class SwigDirector_ContactProcessedListenerByObject : public ContactProcessedListenerByObject, public Swig::Director {\r
+\r
+public:\r
+    void swig_connect_director(JNIEnv *jenv, jobject jself, jclass jcls, bool swig_mem_own, bool weak_global);\r
+    SwigDirector_ContactProcessedListenerByObject(JNIEnv *jenv);\r
+    virtual bool onContactProcessed(btManifoldPoint &cp, btCollisionObject const *colObj0, btCollisionObject const *colObj1);\r
+public:\r
+    bool swig_overrides(int n) {\r
+      return (n < 1 ? swig_override[n] : false);\r
+    }\r
+protected:\r
+    bool swig_override[1];\r
+};\r
+\r
+class SwigDirector_ContactProcessedListenerByValue : public ContactProcessedListenerByValue, public Swig::Director {\r
+\r
+public:\r
+    void swig_connect_director(JNIEnv *jenv, jobject jself, jclass jcls, bool swig_mem_own, bool weak_global);\r
+    SwigDirector_ContactProcessedListenerByValue(JNIEnv *jenv);\r
+    virtual bool onContactProcessed(btManifoldPoint &cp, int userValue0, int userValue1);\r
+public:\r
+    bool swig_overrides(int n) {\r
+      return (n < 1 ? swig_override[n] : false);\r
+    }\r
+protected:\r
+    bool swig_override[1];\r
+};\r
+\r
+class SwigDirector_ContactDestroyedListener : public ContactDestroyedListener, public Swig::Director {\r
+\r
+public:\r
+    void swig_connect_director(JNIEnv *jenv, jobject jself, jclass jcls, bool swig_mem_own, bool weak_global);\r
+    SwigDirector_ContactDestroyedListener(JNIEnv *jenv);\r
+    virtual bool onContactDestroyed(int manifoldPointUserValue);\r
+public:\r
+    bool swig_overrides(int n) {\r
+      return (n < 1 ? swig_override[n] : false);\r
+    }\r
+protected:\r
+    bool swig_override[1];\r
+};\r
+\r
 \r
 #endif\r