OSDN Git Service

Swig gen wrapper and update vs project
authorXoppa <contact@xoppa.nl>
Tue, 8 Oct 2013 17:43:33 +0000 (19:43 +0200)
committerXoppa <contact@xoppa.nl>
Tue, 8 Oct 2013 17:43:33 +0000 (19:43 +0200)
extensions/gdx-bullet/jni/swig-src/gdxBullet_wrap.cpp
extensions/gdx-bullet/jni/swig/dynamics/gdxBulletDynamics.i
extensions/gdx-bullet/jni/vs/gdxBullet/gdxBullet/gdxBullet.vcxproj
extensions/gdx-bullet/jni/vs/gdxBullet/gdxBullet/gdxBullet.vcxproj.filters

index 4830837..c700e06 100755 (executable)
@@ -417,154 +417,6 @@ namespace Swig {
   }\r
 }\r
 \r
-#include <LinearMath/btVector3.h>\r
-#define Vector3_to_btVector3(e, t, s) \\r
-       static jfieldID xField = NULL, yField = NULL, zField = NULL; \\r
-       if (xField == NULL) { \\r
-               jclass sc = e->GetObjectClass(s); \\r
-               xField = e->GetFieldID(sc, "x", "F"); \\r
-               yField = e->GetFieldID(sc, "y", "F"); \\r
-               zField = e->GetFieldID(sc, "z", "F"); \\r
-               e->DeleteLocalRef(sc); \\r
-       } \\r
-       t.setValue(e->GetFloatField(s, xField), e->GetFloatField(s, yField), e->GetFloatField(s, zField));\r
-       \r
-#define btVector3_to_Vector3(e, t, s) \\r
-       static jfieldID xField = NULL, yField = NULL, zField = NULL; \\r
-       if (xField == NULL) { \\r
-               jclass tc = e->GetObjectClass(t); \\r
-               xField = e->GetFieldID(tc, "x", "F"); \\r
-               yField = e->GetFieldID(tc, "y", "F"); \\r
-               zField = e->GetFieldID(tc, "z", "F"); \\r
-               e->DeleteLocalRef(tc); \\r
-         } \\r
-         e->SetFloatField(t, xField, s.getX()); \\r
-         e->SetFloatField(t, yField, s.getY()); \\r
-         e->SetFloatField(t, zField, s.getZ());\r
-        \r
-\r
-\r
-#include <LinearMath/btQuaternion.h>\r
-SWIGINTERN inline void Quaternion_to_btQuaternion(JNIEnv * jenv, btQuaternion & target, jobject source) {\r
-       static jfieldID xField = NULL, yField = NULL, zField = NULL, wField = NULL;\r
-       if (xField == NULL) {\r
-               jclass sourceClass = jenv->GetObjectClass(source);\r
-               xField = jenv->GetFieldID(sourceClass, "x", "F");\r
-               yField = jenv->GetFieldID(sourceClass, "y", "F");\r
-               zField = jenv->GetFieldID(sourceClass, "z", "F");\r
-               wField = jenv->GetFieldID(sourceClass, "w", "F");\r
-               jenv->DeleteLocalRef(sourceClass);\r
-       }\r
-       \r
-       target.setValue(\r
-                       jenv->GetFloatField(source, xField),\r
-                       jenv->GetFloatField(source, yField),\r
-                       jenv->GetFloatField(source, zField),\r
-                       jenv->GetFloatField(source, wField));\r
-}\r
-\r
-SWIGINTERN inline void btQuaternion_to_Quaternion(JNIEnv * jenv, jobject target, const btQuaternion & source) {\r
-       static jfieldID xField = NULL, yField = NULL, zField = NULL, wField = NULL;\r
-       if (xField == NULL) {\r
-               jclass targetClass = jenv->GetObjectClass(target);\r
-               xField = jenv->GetFieldID(targetClass, "x", "F");\r
-               yField = jenv->GetFieldID(targetClass, "y", "F");\r
-               zField = jenv->GetFieldID(targetClass, "z", "F");\r
-               wField = jenv->GetFieldID(targetClass, "w", "F");\r
-               jenv->DeleteLocalRef(targetClass);\r
-       }\r
-       \r
-       jenv->SetFloatField(target, xField, source.getX());\r
-       jenv->SetFloatField(target, yField, source.getY());\r
-       jenv->SetFloatField(target, zField, source.getZ());\r
-       jenv->SetFloatField(target, wField, source.getW());\r
-}\r
-\r
-\r
-#include <LinearMath/btMatrix3x3.h>\r
-SWIGINTERN inline void Matrix3_to_btMatrix3(JNIEnv * jenv, btMatrix3x3 & target, jobject source) {       \r
-       static jfieldID valField = NULL;\r
-       if (valField == NULL) {\r
-               jclass sourceClass = jenv->GetObjectClass(source);\r
-               valField = jenv->GetFieldID(sourceClass, "val", "[F");\r
-               jenv->DeleteLocalRef(sourceClass);\r
-       }\r
-       \r
-       jfloatArray valArray = (jfloatArray) jenv->GetObjectField(source, valField);\r
-       jfloat * elements = jenv->GetFloatArrayElements(valArray, NULL);\r
-       \r
-       // Convert to column-major\r
-       target.setValue(\r
-       elements[0], elements[3], elements[6],\r
-       elements[1], elements[4], elements[7],\r
-       elements[2], elements[5], elements[8]);\r
-       \r
-       jenv->ReleaseFloatArrayElements(valArray, elements, JNI_ABORT);\r
-       jenv->DeleteLocalRef(valArray);\r
-}\r
-SWIGINTERN inline void btMatrix3_to_Matrix3(JNIEnv * jenv, jobject target, const btMatrix3x3 & source) {\r
-       static jfieldID valField = NULL;\r
-       if (valField == NULL) {\r
-               jclass targetClass = jenv->GetObjectClass(target);\r
-               valField = jenv->GetFieldID(targetClass, "val", "[F");\r
-               jenv->DeleteLocalRef(targetClass);\r
-       }\r
-       \r
-       jfloatArray valArray = (jfloatArray) jenv->GetObjectField(target, valField);\r
-       jfloat * elements = jenv->GetFloatArrayElements(valArray, NULL);\r
-       \r
-       // Convert to column-major\r
-       elements[0] = (jfloat) source.getColumn(0).getX();\r
-       elements[1] = (jfloat) source.getColumn(0).getY();\r
-       elements[2] = (jfloat) source.getColumn(0).getZ();\r
-       elements[3] = (jfloat) source.getColumn(1).getX();\r
-       elements[4] = (jfloat) source.getColumn(1).getY();\r
-       elements[5] = (jfloat) source.getColumn(1).getZ();\r
-       elements[6] = (jfloat) source.getColumn(2).getX();\r
-       elements[7] = (jfloat) source.getColumn(2).getY();\r
-       elements[8] = (jfloat) source.getColumn(2).getZ();\r
-       \r
-       jenv->ReleaseFloatArrayElements(valArray, elements, 0);  \r
-       jenv->DeleteLocalRef(valArray);\r
-}\r
-\r
-\r
-#include <LinearMath/btTransform.h>\r
-SWIGINTERN inline void Matrix4_to_btTransform(JNIEnv * jenv, btTransform & target, jobject source) {\r
-       static jfieldID valField = NULL;\r
-       if (valField == NULL) {\r
-               jclass sourceClass = jenv->GetObjectClass(source);\r
-               valField = jenv->GetFieldID(sourceClass, "val", "[F");\r
-               jenv->DeleteLocalRef(sourceClass);\r
-       }\r
-       \r
-       jfloatArray valArray = (jfloatArray) jenv->GetObjectField(source, valField);\r
-       jfloat * elements = jenv->GetFloatArrayElements(valArray, NULL);\r
-       \r
-       target.setFromOpenGLMatrix(elements);\r
-       \r
-       jenv->ReleaseFloatArrayElements(valArray, elements, JNI_ABORT);\r
-       jenv->DeleteLocalRef(valArray);\r
-}\r
-       \r
-SWIGINTERN inline void btTransform_to_Matrix4(JNIEnv * jenv, jobject target, const btTransform & source) {\r
-       static jfieldID valField = NULL;\r
-       if (valField == NULL) {\r
-               jclass targetClass = jenv->GetObjectClass(target);\r
-               valField = jenv->GetFieldID(targetClass, "val", "[F");\r
-               jenv->DeleteLocalRef(targetClass);\r
-       }\r
-       \r
-       jfloatArray valArray = (jfloatArray) jenv->GetObjectField(target, valField);\r
-       jfloat * elements = jenv->GetFloatArrayElements(valArray, NULL);\r
-\r
-       source.getOpenGLMatrix(elements);\r
-       \r
-       jenv->ReleaseFloatArrayElements(valArray, elements, 0);\r
-       jenv->DeleteLocalRef(valArray);\r
-}\r
-\r
-\r
 #include <stdint.h>\r
 \r
 \r
@@ -1192,6 +1044,169 @@ static jdoubleArray SWIG_JavaArrayOutDouble (JNIEnv *jenv, double *result, jsize
 #include <LinearMath/btTransform.h>\r
 \r
 \r
+#include <LinearMath/btVector3.h>\r
+\r
+\r
+#include <LinearMath/btQuaternion.h>\r
+\r
+\r
+#include <LinearMath/btVector3.h>\r
+#define Vector3_to_btVector3(e, t, s) \\r
+       static jfieldID xField = NULL, yField = NULL, zField = NULL; \\r
+       if (xField == NULL) { \\r
+               jclass sc = e->GetObjectClass(s); \\r
+               xField = e->GetFieldID(sc, "x", "F"); \\r
+               yField = e->GetFieldID(sc, "y", "F"); \\r
+               zField = e->GetFieldID(sc, "z", "F"); \\r
+               e->DeleteLocalRef(sc); \\r
+       } \\r
+       t.setValue(e->GetFloatField(s, xField), e->GetFloatField(s, yField), e->GetFloatField(s, zField));\r
+       \r
+#define btVector3_to_Vector3(e, t, s) \\r
+       static jfieldID xField = NULL, yField = NULL, zField = NULL; \\r
+       if (xField == NULL) { \\r
+               jclass tc = e->GetObjectClass(t); \\r
+               xField = e->GetFieldID(tc, "x", "F"); \\r
+               yField = e->GetFieldID(tc, "y", "F"); \\r
+               zField = e->GetFieldID(tc, "z", "F"); \\r
+               e->DeleteLocalRef(tc); \\r
+         } \\r
+         e->SetFloatField(t, xField, s.getX()); \\r
+         e->SetFloatField(t, yField, s.getY()); \\r
+         e->SetFloatField(t, zField, s.getZ());\r
+        \r
+\r
+\r
+#include <LinearMath/btQuaternion.h>\r
+SWIGINTERN inline void Quaternion_to_btQuaternion(JNIEnv * jenv, btQuaternion & target, jobject source) {\r
+       static jfieldID xField = NULL, yField = NULL, zField = NULL, wField = NULL;\r
+       if (xField == NULL) {\r
+               jclass sourceClass = jenv->GetObjectClass(source);\r
+               xField = jenv->GetFieldID(sourceClass, "x", "F");\r
+               yField = jenv->GetFieldID(sourceClass, "y", "F");\r
+               zField = jenv->GetFieldID(sourceClass, "z", "F");\r
+               wField = jenv->GetFieldID(sourceClass, "w", "F");\r
+               jenv->DeleteLocalRef(sourceClass);\r
+       }\r
+       \r
+       target.setValue(\r
+                       jenv->GetFloatField(source, xField),\r
+                       jenv->GetFloatField(source, yField),\r
+                       jenv->GetFloatField(source, zField),\r
+                       jenv->GetFloatField(source, wField));\r
+}\r
+\r
+SWIGINTERN inline void btQuaternion_to_Quaternion(JNIEnv * jenv, jobject target, const btQuaternion & source) {\r
+       static jfieldID xField = NULL, yField = NULL, zField = NULL, wField = NULL;\r
+       if (xField == NULL) {\r
+               jclass targetClass = jenv->GetObjectClass(target);\r
+               xField = jenv->GetFieldID(targetClass, "x", "F");\r
+               yField = jenv->GetFieldID(targetClass, "y", "F");\r
+               zField = jenv->GetFieldID(targetClass, "z", "F");\r
+               wField = jenv->GetFieldID(targetClass, "w", "F");\r
+               jenv->DeleteLocalRef(targetClass);\r
+       }\r
+       \r
+       jenv->SetFloatField(target, xField, source.getX());\r
+       jenv->SetFloatField(target, yField, source.getY());\r
+       jenv->SetFloatField(target, zField, source.getZ());\r
+       jenv->SetFloatField(target, wField, source.getW());\r
+}\r
+\r
+\r
+#include <LinearMath/btMatrix3x3.h>\r
+SWIGINTERN inline void Matrix3_to_btMatrix3(JNIEnv * jenv, btMatrix3x3 & target, jobject source) {       \r
+       static jfieldID valField = NULL;\r
+       if (valField == NULL) {\r
+               jclass sourceClass = jenv->GetObjectClass(source);\r
+               valField = jenv->GetFieldID(sourceClass, "val", "[F");\r
+               jenv->DeleteLocalRef(sourceClass);\r
+       }\r
+       \r
+       jfloatArray valArray = (jfloatArray) jenv->GetObjectField(source, valField);\r
+       jfloat * elements = jenv->GetFloatArrayElements(valArray, NULL);\r
+       \r
+       // Convert to column-major\r
+       target.setValue(\r
+       elements[0], elements[3], elements[6],\r
+       elements[1], elements[4], elements[7],\r
+       elements[2], elements[5], elements[8]);\r
+       \r
+       jenv->ReleaseFloatArrayElements(valArray, elements, JNI_ABORT);\r
+       jenv->DeleteLocalRef(valArray);\r
+}\r
+SWIGINTERN inline void btMatrix3_to_Matrix3(JNIEnv * jenv, jobject target, const btMatrix3x3 & source) {\r
+       static jfieldID valField = NULL;\r
+       if (valField == NULL) {\r
+               jclass targetClass = jenv->GetObjectClass(target);\r
+               valField = jenv->GetFieldID(targetClass, "val", "[F");\r
+               jenv->DeleteLocalRef(targetClass);\r
+       }\r
+       \r
+       jfloatArray valArray = (jfloatArray) jenv->GetObjectField(target, valField);\r
+       jfloat * elements = jenv->GetFloatArrayElements(valArray, NULL);\r
+       \r
+       // Convert to column-major\r
+       elements[0] = (jfloat) source.getColumn(0).getX();\r
+       elements[1] = (jfloat) source.getColumn(0).getY();\r
+       elements[2] = (jfloat) source.getColumn(0).getZ();\r
+       elements[3] = (jfloat) source.getColumn(1).getX();\r
+       elements[4] = (jfloat) source.getColumn(1).getY();\r
+       elements[5] = (jfloat) source.getColumn(1).getZ();\r
+       elements[6] = (jfloat) source.getColumn(2).getX();\r
+       elements[7] = (jfloat) source.getColumn(2).getY();\r
+       elements[8] = (jfloat) source.getColumn(2).getZ();\r
+       \r
+       jenv->ReleaseFloatArrayElements(valArray, elements, 0);  \r
+       jenv->DeleteLocalRef(valArray);\r
+}\r
+\r
+\r
+#include <LinearMath/btTransform.h>\r
+SWIGINTERN inline void Matrix4_to_btTransform(JNIEnv * jenv, btTransform & target, jobject source) {\r
+       static jfieldID valField = NULL;\r
+       if (valField == NULL) {\r
+               jclass sourceClass = jenv->GetObjectClass(source);\r
+               valField = jenv->GetFieldID(sourceClass, "val", "[F");\r
+               jenv->DeleteLocalRef(sourceClass);\r
+       }\r
+       \r
+       jfloatArray valArray = (jfloatArray) jenv->GetObjectField(source, valField);\r
+       jfloat * elements = jenv->GetFloatArrayElements(valArray, NULL);\r
+       \r
+       target.setFromOpenGLMatrix(elements);\r
+       \r
+       jenv->ReleaseFloatArrayElements(valArray, elements, JNI_ABORT);\r
+       jenv->DeleteLocalRef(valArray);\r
+}\r
+       \r
+SWIGINTERN inline void btTransform_to_Matrix4(JNIEnv * jenv, jobject target, const btTransform & source) {\r
+       static jfieldID valField = NULL;\r
+       if (valField == NULL) {\r
+               jclass targetClass = jenv->GetObjectClass(target);\r
+               valField = jenv->GetFieldID(targetClass, "val", "[F");\r
+               jenv->DeleteLocalRef(targetClass);\r
+       }\r
+       \r
+       jfloatArray valArray = (jfloatArray) jenv->GetObjectField(target, valField);\r
+       jfloat * elements = jenv->GetFloatArrayElements(valArray, NULL);\r
+\r
+       source.getOpenGLMatrix(elements);\r
+       \r
+       jenv->ReleaseFloatArrayElements(valArray, elements, 0);\r
+       jenv->DeleteLocalRef(valArray);\r
+}\r
+\r
+\r
+#include <LinearMath/btQuadWord.h>\r
+\r
+\r
+#include <LinearMath/btMatrix3x3.h>\r
+\r
+\r
+#include <LinearMath/btAabbUtil2.h>\r
+\r
+\r
 \r
        /* Gets a global ref to the temp class.  Do not release this. */\r
        SWIGINTERN inline jclass gdx_getTempClass(JNIEnv * jenv) {\r
@@ -1273,75 +1288,6 @@ static jdoubleArray SWIG_JavaArrayOutDouble (JNIEnv *jenv, double *result, jsize
 // Workaround for some strange swig behaviour\r
 \r
 \r
-       /* Gets a global ref to the temp class's Return Quaternion.  Do not release this. */ \r
-       SWIGINTERN inline jobject gdx_getReturnQuaternion(JNIEnv * jenv) {\r
-         static jobject ret = NULL;\r
-         if (ret == NULL) {\r
-           jclass tempClass = gdx_getTempClass(jenv);\r
-           jfieldID field = jenv->GetStaticFieldID(tempClass, "staticQuaternion", "Lcom/badlogic/gdx/math/Quaternion;");\r
-           ret = jenv->NewGlobalRef(jenv->GetStaticObjectField(tempClass, field));\r
-         }\r
-         return ret;\r
-       }\r
-       \r
-       /* Sets the data in the Bullet type from the Gdx type. */\r
-       SWIGINTERN inline void gdx_setbtQuaternionFromQuaternion(JNIEnv * jenv, btQuaternion & target, jobject source) {\r
-               Quaternion_to_btQuaternion(jenv, target, source);\r
-       }\r
-\r
-       SWIGINTERN inline void gdx_setbtQuaternionFromQuaternion(JNIEnv * jenv, btQuaternion * target, jobject source) {\r
-               gdx_setbtQuaternionFromQuaternion(jenv, *target, source);\r
-       }\r
-\r
-       /* Sets the data in the Gdx type from the Bullet type. */\r
-       SWIGINTERN inline void gdx_setQuaternionFrombtQuaternion(JNIEnv * jenv, jobject target, const btQuaternion & source) {\r
-               btQuaternion_to_Quaternion(jenv, target, source);\r
-       }\r
-\r
-       SWIGINTERN inline void gdx_setQuaternionFrombtQuaternion(JNIEnv * jenv, jobject target, const btQuaternion * source) {\r
-               gdx_setQuaternionFrombtQuaternion(jenv, target, *source);\r
-       }\r
-\r
-       /*\r
-        * RAII wrapper to commit changes made to a local btQuaternion back to Quaternion\r
-        */\r
-       class gdxAutoCommitQuaternion {\r
-       private:\r
-         JNIEnv * jenv;\r
-         jobject jQuaternion;\r
-         btQuaternion & cbtQuaternion;\r
-       public:\r
-         gdxAutoCommitQuaternion(JNIEnv * jenv, jobject jQuaternion, btQuaternion & cbtQuaternion) : \r
-           jenv(jenv), jQuaternion(jQuaternion), cbtQuaternion(cbtQuaternion) { };\r
-         gdxAutoCommitQuaternion(JNIEnv * jenv, jobject jQuaternion, btQuaternion * cbtQuaternion) : \r
-           jenv(jenv), jQuaternion(jQuaternion), cbtQuaternion(*cbtQuaternion) { };\r
-         virtual ~gdxAutoCommitQuaternion() {\r
-           gdx_setQuaternionFrombtQuaternion(this->jenv, this->jQuaternion, this->cbtQuaternion);\r
-         };\r
-       };\r
-\r
-       class gdxAutoCommitbtQuaternionAndReleaseQuaternion {\r
-       private:\r
-         JNIEnv * jenv;\r
-         jobject jQuaternion;\r
-         btQuaternion & cbtQuaternion;\r
-         const char * poolName;\r
-       public:\r
-         gdxAutoCommitbtQuaternionAndReleaseQuaternion(JNIEnv * jenv, jobject jQuaternion, btQuaternion & cbtQuaternion, const char *poolName) : \r
-           jenv(jenv), jQuaternion(jQuaternion), cbtQuaternion(cbtQuaternion), poolName(poolName) { };\r
-         gdxAutoCommitbtQuaternionAndReleaseQuaternion(JNIEnv * jenv, jobject jQuaternion, btQuaternion * cbtQuaternion, const char *poolName) : \r
-           jenv(jenv), jQuaternion(jQuaternion), cbtQuaternion(*cbtQuaternion), poolName(poolName) { };\r
-         virtual ~gdxAutoCommitbtQuaternionAndReleaseQuaternion() {\r
-           gdx_setbtQuaternionFromQuaternion(this->jenv, this->cbtQuaternion, this->jQuaternion);\r
-           gdx_releasePoolObject(this->jenv, this->poolName, this->jQuaternion);\r
-         };\r
-       };\r
-\r
-\r
-       \r
-// Workaround for some strange swig behaviour\r
-\r
-\r
        /* Gets a global ref to the temp class's Return Vector3.  Do not release this. */ \r
        SWIGINTERN inline jobject gdx_getReturnVector3(JNIEnv * jenv) {\r
          static jobject ret = NULL;\r
@@ -1411,75 +1357,6 @@ static jdoubleArray SWIG_JavaArrayOutDouble (JNIEnv *jenv, double *result, jsize
 // Workaround for some strange swig behaviour\r
 \r
 \r
-       /* Gets a global ref to the temp class's Return Matrix3.  Do not release this. */ \r
-       SWIGINTERN inline jobject gdx_getReturnMatrix3(JNIEnv * jenv) {\r
-         static jobject ret = NULL;\r
-         if (ret == NULL) {\r
-           jclass tempClass = gdx_getTempClass(jenv);\r
-           jfieldID field = jenv->GetStaticFieldID(tempClass, "staticMatrix3", "Lcom/badlogic/gdx/math/Matrix3;");\r
-           ret = jenv->NewGlobalRef(jenv->GetStaticObjectField(tempClass, field));\r
-         }\r
-         return ret;\r
-       }\r
-       \r
-       /* Sets the data in the Bullet type from the Gdx type. */\r
-       SWIGINTERN inline void gdx_setbtMatrix3x3FromMatrix3(JNIEnv * jenv, btMatrix3x3 & target, jobject source) {\r
-               Matrix3_to_btMatrix3(jenv, target, source);\r
-       }\r
-\r
-       SWIGINTERN inline void gdx_setbtMatrix3x3FromMatrix3(JNIEnv * jenv, btMatrix3x3 * target, jobject source) {\r
-               gdx_setbtMatrix3x3FromMatrix3(jenv, *target, source);\r
-       }\r
-\r
-       /* Sets the data in the Gdx type from the Bullet type. */\r
-       SWIGINTERN inline void gdx_setMatrix3FrombtMatrix3x3(JNIEnv * jenv, jobject target, const btMatrix3x3 & source) {\r
-               btMatrix3_to_Matrix3(jenv, target, source);\r
-       }\r
-\r
-       SWIGINTERN inline void gdx_setMatrix3FrombtMatrix3x3(JNIEnv * jenv, jobject target, const btMatrix3x3 * source) {\r
-               gdx_setMatrix3FrombtMatrix3x3(jenv, target, *source);\r
-       }\r
-\r
-       /*\r
-        * RAII wrapper to commit changes made to a local btMatrix3x3 back to Matrix3\r
-        */\r
-       class gdxAutoCommitMatrix3 {\r
-       private:\r
-         JNIEnv * jenv;\r
-         jobject jMatrix3;\r
-         btMatrix3x3 & cbtMatrix3x3;\r
-       public:\r
-         gdxAutoCommitMatrix3(JNIEnv * jenv, jobject jMatrix3, btMatrix3x3 & cbtMatrix3x3) : \r
-           jenv(jenv), jMatrix3(jMatrix3), cbtMatrix3x3(cbtMatrix3x3) { };\r
-         gdxAutoCommitMatrix3(JNIEnv * jenv, jobject jMatrix3, btMatrix3x3 * cbtMatrix3x3) : \r
-           jenv(jenv), jMatrix3(jMatrix3), cbtMatrix3x3(*cbtMatrix3x3) { };\r
-         virtual ~gdxAutoCommitMatrix3() {\r
-           gdx_setMatrix3FrombtMatrix3x3(this->jenv, this->jMatrix3, this->cbtMatrix3x3);\r
-         };\r
-       };\r
-\r
-       class gdxAutoCommitbtMatrix3x3AndReleaseMatrix3 {\r
-       private:\r
-         JNIEnv * jenv;\r
-         jobject jMatrix3;\r
-         btMatrix3x3 & cbtMatrix3x3;\r
-         const char * poolName;\r
-       public:\r
-         gdxAutoCommitbtMatrix3x3AndReleaseMatrix3(JNIEnv * jenv, jobject jMatrix3, btMatrix3x3 & cbtMatrix3x3, const char *poolName) : \r
-           jenv(jenv), jMatrix3(jMatrix3), cbtMatrix3x3(cbtMatrix3x3), poolName(poolName) { };\r
-         gdxAutoCommitbtMatrix3x3AndReleaseMatrix3(JNIEnv * jenv, jobject jMatrix3, btMatrix3x3 * cbtMatrix3x3, const char *poolName) : \r
-           jenv(jenv), jMatrix3(jMatrix3), cbtMatrix3x3(*cbtMatrix3x3), poolName(poolName) { };\r
-         virtual ~gdxAutoCommitbtMatrix3x3AndReleaseMatrix3() {\r
-           gdx_setbtMatrix3x3FromMatrix3(this->jenv, this->cbtMatrix3x3, this->jMatrix3);\r
-           gdx_releasePoolObject(this->jenv, this->poolName, this->jMatrix3);\r
-         };\r
-       };\r
-\r
-\r
-       \r
-// Workaround for some strange swig behaviour\r
-\r
-\r
        /* Gets a global ref to the temp class's Return Matrix4.  Do not release this. */ \r
        SWIGINTERN inline jobject gdx_getReturnMatrix4(JNIEnv * jenv) {\r
          static jobject ret = NULL;\r
@@ -1545,31 +1422,85 @@ static jdoubleArray SWIG_JavaArrayOutDouble (JNIEnv *jenv, double *result, jsize
        };\r
 \r
 \r
-#include <LinearMath/btVector3.h>\r
+#include <LinearMath/btIDebugDraw.h>\r
 \r
 \r
-#include <LinearMath/btQuadWord.h>\r
-\r
+#include <LinearMath/btGeometryUtil.h>\r
 \r
-#include <LinearMath/btQuaternion.h>\r
 \r
+#include <LinearMath/btRandom.h>\r
 \r
-#include <LinearMath/btMatrix3x3.h>\r
 \r
+#include <LinearMath/btTransformUtil.h>\r
 \r
-#include <LinearMath/btAabbUtil2.h>\r
 \r
+       \r
+// Workaround for some strange swig behaviour\r
 \r
-#include <LinearMath/btIDebugDraw.h>\r
 \r
+       /* Gets a global ref to the temp class's Return Quaternion.  Do not release this. */ \r
+       SWIGINTERN inline jobject gdx_getReturnQuaternion(JNIEnv * jenv) {\r
+         static jobject ret = NULL;\r
+         if (ret == NULL) {\r
+           jclass tempClass = gdx_getTempClass(jenv);\r
+           jfieldID field = jenv->GetStaticFieldID(tempClass, "staticQuaternion", "Lcom/badlogic/gdx/math/Quaternion;");\r
+           ret = jenv->NewGlobalRef(jenv->GetStaticObjectField(tempClass, field));\r
+         }\r
+         return ret;\r
+       }\r
+       \r
+       /* Sets the data in the Bullet type from the Gdx type. */\r
+       SWIGINTERN inline void gdx_setbtQuaternionFromQuaternion(JNIEnv * jenv, btQuaternion & target, jobject source) {\r
+               Quaternion_to_btQuaternion(jenv, target, source);\r
+       }\r
 \r
-#include <LinearMath/btGeometryUtil.h>\r
+       SWIGINTERN inline void gdx_setbtQuaternionFromQuaternion(JNIEnv * jenv, btQuaternion * target, jobject source) {\r
+               gdx_setbtQuaternionFromQuaternion(jenv, *target, source);\r
+       }\r
 \r
+       /* Sets the data in the Gdx type from the Bullet type. */\r
+       SWIGINTERN inline void gdx_setQuaternionFrombtQuaternion(JNIEnv * jenv, jobject target, const btQuaternion & source) {\r
+               btQuaternion_to_Quaternion(jenv, target, source);\r
+       }\r
 \r
-#include <LinearMath/btRandom.h>\r
+       SWIGINTERN inline void gdx_setQuaternionFrombtQuaternion(JNIEnv * jenv, jobject target, const btQuaternion * source) {\r
+               gdx_setQuaternionFrombtQuaternion(jenv, target, *source);\r
+       }\r
 \r
+       /*\r
+        * RAII wrapper to commit changes made to a local btQuaternion back to Quaternion\r
+        */\r
+       class gdxAutoCommitQuaternion {\r
+       private:\r
+         JNIEnv * jenv;\r
+         jobject jQuaternion;\r
+         btQuaternion & cbtQuaternion;\r
+       public:\r
+         gdxAutoCommitQuaternion(JNIEnv * jenv, jobject jQuaternion, btQuaternion & cbtQuaternion) : \r
+           jenv(jenv), jQuaternion(jQuaternion), cbtQuaternion(cbtQuaternion) { };\r
+         gdxAutoCommitQuaternion(JNIEnv * jenv, jobject jQuaternion, btQuaternion * cbtQuaternion) : \r
+           jenv(jenv), jQuaternion(jQuaternion), cbtQuaternion(*cbtQuaternion) { };\r
+         virtual ~gdxAutoCommitQuaternion() {\r
+           gdx_setQuaternionFrombtQuaternion(this->jenv, this->jQuaternion, this->cbtQuaternion);\r
+         };\r
+       };\r
 \r
-#include <LinearMath/btTransformUtil.h>\r
+       class gdxAutoCommitbtQuaternionAndReleaseQuaternion {\r
+       private:\r
+         JNIEnv * jenv;\r
+         jobject jQuaternion;\r
+         btQuaternion & cbtQuaternion;\r
+         const char * poolName;\r
+       public:\r
+         gdxAutoCommitbtQuaternionAndReleaseQuaternion(JNIEnv * jenv, jobject jQuaternion, btQuaternion & cbtQuaternion, const char *poolName) : \r
+           jenv(jenv), jQuaternion(jQuaternion), cbtQuaternion(cbtQuaternion), poolName(poolName) { };\r
+         gdxAutoCommitbtQuaternionAndReleaseQuaternion(JNIEnv * jenv, jobject jQuaternion, btQuaternion * cbtQuaternion, const char *poolName) : \r
+           jenv(jenv), jQuaternion(jQuaternion), cbtQuaternion(*cbtQuaternion), poolName(poolName) { };\r
+         virtual ~gdxAutoCommitbtQuaternionAndReleaseQuaternion() {\r
+           gdx_setbtQuaternionFromQuaternion(this->jenv, this->cbtQuaternion, this->jQuaternion);\r
+           gdx_releasePoolObject(this->jenv, this->poolName, this->jQuaternion);\r
+         };\r
+       };\r
 \r
 \r
 #include <LinearMath/btConvexHull.h>\r
@@ -2054,7 +1985,7 @@ bool custom_ContactListener_setEvents(ContactListener *listener);
          \r
          static jmethodID reuseMethod = NULL;\r
          if (reuseMethod == NULL)\r
-                 reuseMethod = (jmethodID) jenv->GetMethodID(clazz, "reuse", "(JZ)V");\r
+                 reuseMethod = (jmethodID) jenv->GetMethodID(clazz, "reset", "(JZ)V");\r
          \r
          long ptr;\r
          *(const void **)&ptr = cPtr;\r
@@ -2183,6 +2114,75 @@ typedef btRigidBody::btRigidBodyConstructionInfo btRigidBodyConstructionInfo;
 SWIGINTERN btRigidBodyConstructionInfo *new_btRigidBodyConstructionInfo__SWIG_0(bool dummy,btScalar mass,btMotionState *motionState,btCollisionShape *collisionShape,btVector3 const &localInertia=btVector3(0,0,0)){\r
                return new btRigidBodyConstructionInfo(mass, motionState, collisionShape, localInertia); \r
        }\r
+\r
+       \r
+// Workaround for some strange swig behaviour\r
+\r
+\r
+       /* Gets a global ref to the temp class's Return Matrix3.  Do not release this. */ \r
+       SWIGINTERN inline jobject gdx_getReturnMatrix3(JNIEnv * jenv) {\r
+         static jobject ret = NULL;\r
+         if (ret == NULL) {\r
+           jclass tempClass = gdx_getTempClass(jenv);\r
+           jfieldID field = jenv->GetStaticFieldID(tempClass, "staticMatrix3", "Lcom/badlogic/gdx/math/Matrix3;");\r
+           ret = jenv->NewGlobalRef(jenv->GetStaticObjectField(tempClass, field));\r
+         }\r
+         return ret;\r
+       }\r
+       \r
+       /* Sets the data in the Bullet type from the Gdx type. */\r
+       SWIGINTERN inline void gdx_setbtMatrix3x3FromMatrix3(JNIEnv * jenv, btMatrix3x3 & target, jobject source) {\r
+               Matrix3_to_btMatrix3(jenv, target, source);\r
+       }\r
+\r
+       SWIGINTERN inline void gdx_setbtMatrix3x3FromMatrix3(JNIEnv * jenv, btMatrix3x3 * target, jobject source) {\r
+               gdx_setbtMatrix3x3FromMatrix3(jenv, *target, source);\r
+       }\r
+\r
+       /* Sets the data in the Gdx type from the Bullet type. */\r
+       SWIGINTERN inline void gdx_setMatrix3FrombtMatrix3x3(JNIEnv * jenv, jobject target, const btMatrix3x3 & source) {\r
+               btMatrix3_to_Matrix3(jenv, target, source);\r
+       }\r
+\r
+       SWIGINTERN inline void gdx_setMatrix3FrombtMatrix3x3(JNIEnv * jenv, jobject target, const btMatrix3x3 * source) {\r
+               gdx_setMatrix3FrombtMatrix3x3(jenv, target, *source);\r
+       }\r
+\r
+       /*\r
+        * RAII wrapper to commit changes made to a local btMatrix3x3 back to Matrix3\r
+        */\r
+       class gdxAutoCommitMatrix3 {\r
+       private:\r
+         JNIEnv * jenv;\r
+         jobject jMatrix3;\r
+         btMatrix3x3 & cbtMatrix3x3;\r
+       public:\r
+         gdxAutoCommitMatrix3(JNIEnv * jenv, jobject jMatrix3, btMatrix3x3 & cbtMatrix3x3) : \r
+           jenv(jenv), jMatrix3(jMatrix3), cbtMatrix3x3(cbtMatrix3x3) { };\r
+         gdxAutoCommitMatrix3(JNIEnv * jenv, jobject jMatrix3, btMatrix3x3 * cbtMatrix3x3) : \r
+           jenv(jenv), jMatrix3(jMatrix3), cbtMatrix3x3(*cbtMatrix3x3) { };\r
+         virtual ~gdxAutoCommitMatrix3() {\r
+           gdx_setMatrix3FrombtMatrix3x3(this->jenv, this->jMatrix3, this->cbtMatrix3x3);\r
+         };\r
+       };\r
+\r
+       class gdxAutoCommitbtMatrix3x3AndReleaseMatrix3 {\r
+       private:\r
+         JNIEnv * jenv;\r
+         jobject jMatrix3;\r
+         btMatrix3x3 & cbtMatrix3x3;\r
+         const char * poolName;\r
+       public:\r
+         gdxAutoCommitbtMatrix3x3AndReleaseMatrix3(JNIEnv * jenv, jobject jMatrix3, btMatrix3x3 & cbtMatrix3x3, const char *poolName) : \r
+           jenv(jenv), jMatrix3(jMatrix3), cbtMatrix3x3(cbtMatrix3x3), poolName(poolName) { };\r
+         gdxAutoCommitbtMatrix3x3AndReleaseMatrix3(JNIEnv * jenv, jobject jMatrix3, btMatrix3x3 * cbtMatrix3x3, const char *poolName) : \r
+           jenv(jenv), jMatrix3(jMatrix3), cbtMatrix3x3(*cbtMatrix3x3), poolName(poolName) { };\r
+         virtual ~gdxAutoCommitbtMatrix3x3AndReleaseMatrix3() {\r
+           gdx_setbtMatrix3x3FromMatrix3(this->jenv, this->cbtMatrix3x3, this->jMatrix3);\r
+           gdx_releasePoolObject(this->jenv, this->poolName, this->jMatrix3);\r
+         };\r
+       };\r
+\r
 SWIGINTERN btRigidBody *new_btRigidBody__SWIG_0(bool dummy,btRigidBodyConstructionInfo const &constructionInfo){\r
                return new btRigidBody(constructionInfo); \r
        }\r
@@ -6920,7 +6920,7 @@ SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1
 }\r
 \r
 \r
-SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1btTransform_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jobject jarg1, jobject jarg2) {\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1btTransform_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
   jlong jresult = 0 ;\r
   btQuaternion *arg1 = 0 ;\r
   btVector3 *arg2 = 0 ;\r
@@ -6928,38 +6928,44 @@ SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btQuaternion local_arg1;\r
-  gdx_setbtQuaternionFromQuaternion(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitQuaternion auto_commit_arg1(jenv, jarg1, &local_arg1);\r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  arg1 = *(btQuaternion **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btQuaternion const & reference is null");\r
+    return 0;\r
+  } \r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   result = (btTransform *)new btTransform((btQuaternion const &)*arg1,(btVector3 const &)*arg2);\r
   *(btTransform **)&jresult = result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1btTransform_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jobject jarg1) {\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1btTransform_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
   jlong jresult = 0 ;\r
   btQuaternion *arg1 = 0 ;\r
   btTransform *result = 0 ;\r
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btQuaternion local_arg1;\r
-  gdx_setbtQuaternionFromQuaternion(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitQuaternion auto_commit_arg1(jenv, jarg1, &local_arg1);\r
+  (void)jarg1_;\r
+  arg1 = *(btQuaternion **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btQuaternion const & reference is null");\r
+    return 0;\r
+  } \r
   result = (btTransform *)new btTransform((btQuaternion const &)*arg1);\r
   *(btTransform **)&jresult = result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1btTransform_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jobject jarg1, jobject jarg2) {\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1btTransform_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg2_) {\r
   jlong jresult = 0 ;\r
   btMatrix3x3 *arg1 = 0 ;\r
   btVector3 *arg2 = 0 ;\r
@@ -6967,55 +6973,61 @@ SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btMatrix3x3 local_arg1;\r
-  gdx_setbtMatrix3x3FromMatrix3(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitMatrix3 auto_commit_arg1(jenv, jarg1, &local_arg1);\r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  (void)jarg2_;\r
+  arg1 = *(btMatrix3x3 **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btMatrix3x3 const & reference is null");\r
+    return 0;\r
+  } \r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   result = (btTransform *)new btTransform((btMatrix3x3 const &)*arg1,(btVector3 const &)*arg2);\r
   *(btTransform **)&jresult = result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1btTransform_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jobject jarg1) {\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1btTransform_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jlong jarg1) {\r
   jlong jresult = 0 ;\r
   btMatrix3x3 *arg1 = 0 ;\r
   btTransform *result = 0 ;\r
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btMatrix3x3 local_arg1;\r
-  gdx_setbtMatrix3x3FromMatrix3(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitMatrix3 auto_commit_arg1(jenv, jarg1, &local_arg1);\r
+  arg1 = *(btMatrix3x3 **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btMatrix3x3 const & reference is null");\r
+    return 0;\r
+  } \r
   result = (btTransform *)new btTransform((btMatrix3x3 const &)*arg1);\r
   *(btTransform **)&jresult = result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1btTransform_1_1SWIG_15(JNIEnv *jenv, jclass jcls, jobject jarg1) {\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1btTransform_1_1SWIG_15(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
   jlong jresult = 0 ;\r
   btTransform *arg1 = 0 ;\r
   btTransform *result = 0 ;\r
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btTransform local_arg1;\r
-  gdx_setbtTransformFromMatrix4(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitMatrix4 auto_commit_arg1(jenv, jarg1, &local_arg1);\r
+  (void)jarg1_;\r
+  arg1 = *(btTransform **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btTransform const & reference is null");\r
+    return 0;\r
+  } \r
   result = (btTransform *)new btTransform((btTransform const &)*arg1);\r
   *(btTransform **)&jresult = result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1mult(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jobject jarg3) {\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1mult(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) {\r
   btTransform *arg1 = (btTransform *) 0 ;\r
   btTransform *arg2 = 0 ;\r
   btTransform *arg3 = 0 ;\r
@@ -7023,21 +7035,25 @@ SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTran
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
+  (void)jarg3_;\r
   arg1 = *(btTransform **)&jarg1; \r
-  btTransform local_arg2;\r
-  gdx_setbtTransformFromMatrix4(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitMatrix4 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
-  btTransform local_arg3;\r
-  gdx_setbtTransformFromMatrix4(jenv, local_arg3, jarg3);\r
-  arg3 = &local_arg3;\r
-  gdxAutoCommitMatrix4 auto_commit_arg3(jenv, jarg3, &local_arg3);\r
+  arg2 = *(btTransform **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btTransform const & reference is null");\r
+    return ;\r
+  } \r
+  arg3 = *(btTransform **)&jarg3;\r
+  if (!arg3) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btTransform const & reference is null");\r
+    return ;\r
+  } \r
   (arg1)->mult((btTransform const &)*arg2,(btTransform const &)*arg3);\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1getBasis_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1getBasis_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  jlong jresult = 0 ;\r
   btTransform *arg1 = (btTransform *) 0 ;\r
   btMatrix3x3 *result = 0 ;\r
   \r
@@ -7046,14 +7062,13 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btT
   (void)jarg1_;\r
   arg1 = *(btTransform **)&jarg1; \r
   result = (btMatrix3x3 *) &(arg1)->getBasis();\r
-  jresult = gdx_getReturnMatrix3(jenv);\r
-  gdx_setMatrix3FrombtMatrix3x3(jenv, jresult, result);\r
+  *(btMatrix3x3 **)&jresult = result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1getOrigin_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1getOrigin_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  jlong jresult = 0 ;\r
   btTransform *arg1 = (btTransform *) 0 ;\r
   btVector3 *result = 0 ;\r
   \r
@@ -7062,14 +7077,13 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btT
   (void)jarg1_;\r
   arg1 = *(btTransform **)&jarg1; \r
   result = (btVector3 *) &(arg1)->getOrigin();\r
-  jresult = gdx_getReturnVector3(jenv);\r
-  gdx_setVector3FrombtVector3(jenv, jresult, result);\r
+  *(btVector3 **)&jresult = result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1getRotation(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1getRotation(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  jlong jresult = 0 ;\r
   btTransform *arg1 = (btTransform *) 0 ;\r
   btQuaternion result;\r
   \r
@@ -7078,8 +7092,7 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btT
   (void)jarg1_;\r
   arg1 = *(btTransform **)&jarg1; \r
   result = ((btTransform const *)arg1)->getRotation();\r
-  jresult = gdx_getReturnQuaternion(jenv);\r
-  gdx_setQuaternionFrombtQuaternion(jenv, jresult, result);\r
+  *(btQuaternion **)&jresult = new btQuaternion((const btQuaternion &)result); \r
   return jresult;\r
 }\r
 \r
@@ -7116,24 +7129,26 @@ SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTran
 }\r
 \r
 \r
-SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1setOrigin(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) {\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1setOrigin(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
   btTransform *arg1 = (btTransform *) 0 ;\r
   btVector3 *arg2 = 0 ;\r
   \r
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
   arg1 = *(btTransform **)&jarg1; \r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return ;\r
+  } \r
   (arg1)->setOrigin((btVector3 const &)*arg2);\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1invXform(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1invXform(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
+  jlong jresult = 0 ;\r
   btTransform *arg1 = (btTransform *) 0 ;\r
   btVector3 *arg2 = 0 ;\r
   btVector3 result;\r
@@ -7141,19 +7156,20 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btT
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
   arg1 = *(btTransform **)&jarg1; \r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   result = ((btTransform const *)arg1)->invXform((btVector3 const &)*arg2);\r
-  jresult = gdx_getReturnVector3(jenv);\r
-  gdx_setVector3FrombtVector3(jenv, jresult, result);\r
+  *(btVector3 **)&jresult = new btVector3((const btVector3 &)result); \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1setBasis(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) {\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1setBasis(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {\r
   btTransform *arg1 = (btTransform *) 0 ;\r
   btMatrix3x3 *arg2 = 0 ;\r
   \r
@@ -7161,26 +7177,29 @@ SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTran
   (void)jcls;\r
   (void)jarg1_;\r
   arg1 = *(btTransform **)&jarg1; \r
-  btMatrix3x3 local_arg2;\r
-  gdx_setbtMatrix3x3FromMatrix3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitMatrix3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  arg2 = *(btMatrix3x3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btMatrix3x3 const & reference is null");\r
+    return ;\r
+  } \r
   (arg1)->setBasis((btMatrix3x3 const &)*arg2);\r
 }\r
 \r
 \r
-SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1setRotation(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) {\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1setRotation(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
   btTransform *arg1 = (btTransform *) 0 ;\r
   btQuaternion *arg2 = 0 ;\r
   \r
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
   arg1 = *(btTransform **)&jarg1; \r
-  btQuaternion local_arg2;\r
-  gdx_setbtQuaternionFromQuaternion(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitQuaternion auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  arg2 = *(btQuaternion **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btQuaternion const & reference is null");\r
+    return ;\r
+  } \r
   (arg1)->setRotation((btQuaternion const &)*arg2);\r
 }\r
 \r
@@ -7196,8 +7215,8 @@ SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTran
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1inverse(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1inverse(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  jlong jresult = 0 ;\r
   btTransform *arg1 = (btTransform *) 0 ;\r
   btTransform result;\r
   \r
@@ -7206,14 +7225,13 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btT
   (void)jarg1_;\r
   arg1 = *(btTransform **)&jarg1; \r
   result = ((btTransform const *)arg1)->inverse();\r
-  jresult = gdx_getReturnMatrix4(jenv);\r
-  gdx_setMatrix4FrombtTransform(jenv, jresult, result);\r
+  *(btTransform **)&jresult = new btTransform((const btTransform &)result); \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1inverseTimes(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1inverseTimes(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
+  jlong jresult = 0 ;\r
   btTransform *arg1 = (btTransform *) 0 ;\r
   btTransform *arg2 = 0 ;\r
   btTransform result;\r
@@ -7221,27 +7239,27 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btT
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
   arg1 = *(btTransform **)&jarg1; \r
-  btTransform local_arg2;\r
-  gdx_setbtTransformFromMatrix4(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitMatrix4 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  arg2 = *(btTransform **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btTransform const & reference is null");\r
+    return 0;\r
+  } \r
   result = ((btTransform const *)arg1)->inverseTimes((btTransform const &)*arg2);\r
-  jresult = gdx_getReturnMatrix4(jenv);\r
-  gdx_setMatrix4FrombtTransform(jenv, jresult, result);\r
+  *(btTransform **)&jresult = new btTransform((const btTransform &)result); \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1getIdentity(JNIEnv *jenv, jclass jcls) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTransform_1getIdentity(JNIEnv *jenv, jclass jcls) {\r
+  jlong jresult = 0 ;\r
   btTransform *result = 0 ;\r
   \r
   (void)jenv;\r
   (void)jcls;\r
   result = (btTransform *) &btTransform::getIdentity();\r
-  jresult = gdx_getReturnMatrix4(jenv);\r
-  gdx_setMatrix4FrombtTransform(jenv, jresult, result);\r
+  *(btTransform **)&jresult = result; \r
   return jresult;\r
 }\r
 \r
@@ -7591,7 +7609,7 @@ SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1
 }\r
 \r
 \r
-SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1dot(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) {\r
+SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1dot(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
   jfloat jresult = 0 ;\r
   btVector3 *arg1 = (btVector3 *) 0 ;\r
   btVector3 *arg2 = 0 ;\r
@@ -7600,11 +7618,13 @@ SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVe
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
   arg1 = *(btVector3 **)&jarg1; \r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   result = (btScalar)((btVector3 const *)arg1)->dot((btVector3 const &)*arg2);\r
   jresult = (jfloat)result; \r
   return jresult;\r
@@ -7641,7 +7661,7 @@ SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVe
 }\r
 \r
 \r
-SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1distance2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) {\r
+SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1distance2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
   jfloat jresult = 0 ;\r
   btVector3 *arg1 = (btVector3 *) 0 ;\r
   btVector3 *arg2 = 0 ;\r
@@ -7650,18 +7670,20 @@ SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVe
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
   arg1 = *(btVector3 **)&jarg1; \r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   result = (btScalar)((btVector3 const *)arg1)->distance2((btVector3 const &)*arg2);\r
   jresult = (jfloat)result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1distance(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) {\r
+SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1distance(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
   jfloat jresult = 0 ;\r
   btVector3 *arg1 = (btVector3 *) 0 ;\r
   btVector3 *arg2 = 0 ;\r
@@ -7670,19 +7692,21 @@ SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVe
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
   arg1 = *(btVector3 **)&jarg1; \r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   result = (btScalar)((btVector3 const *)arg1)->distance((btVector3 const &)*arg2);\r
   jresult = (jfloat)result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1safeNormalize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1safeNormalize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  jlong jresult = 0 ;\r
   btVector3 *arg1 = (btVector3 *) 0 ;\r
   btVector3 *result = 0 ;\r
   \r
@@ -7691,14 +7715,13 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btV
   (void)jarg1_;\r
   arg1 = *(btVector3 **)&jarg1; \r
   result = (btVector3 *) &(arg1)->safeNormalize();\r
-  jresult = gdx_getReturnVector3(jenv);\r
-  gdx_setVector3FrombtVector3(jenv, jresult, result);\r
+  *(btVector3 **)&jresult = result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1normalize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1normalize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  jlong jresult = 0 ;\r
   btVector3 *arg1 = (btVector3 *) 0 ;\r
   btVector3 *result = 0 ;\r
   \r
@@ -7707,14 +7730,13 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btV
   (void)jarg1_;\r
   arg1 = *(btVector3 **)&jarg1; \r
   result = (btVector3 *) &(arg1)->normalize();\r
-  jresult = gdx_getReturnVector3(jenv);\r
-  gdx_setVector3FrombtVector3(jenv, jresult, result);\r
+  *(btVector3 **)&jresult = result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1normalized(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1normalized(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  jlong jresult = 0 ;\r
   btVector3 *arg1 = (btVector3 *) 0 ;\r
   btVector3 result;\r
   \r
@@ -7723,14 +7745,13 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btV
   (void)jarg1_;\r
   arg1 = *(btVector3 **)&jarg1; \r
   result = ((btVector3 const *)arg1)->normalized();\r
-  jresult = gdx_getReturnVector3(jenv);\r
-  gdx_setVector3FrombtVector3(jenv, jresult, result);\r
+  *(btVector3 **)&jresult = new btVector3((const btVector3 &)result); \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1rotate(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jfloat jarg3) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1rotate(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jfloat jarg3) {\r
+  jlong jresult = 0 ;\r
   btVector3 *arg1 = (btVector3 *) 0 ;\r
   btVector3 *arg2 = 0 ;\r
   btScalar arg3 ;\r
@@ -7739,20 +7760,21 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btV
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
   arg1 = *(btVector3 **)&jarg1; \r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   arg3 = (btScalar)jarg3; \r
   result = ((btVector3 const *)arg1)->rotate((btVector3 const &)*arg2,arg3);\r
-  jresult = gdx_getReturnVector3(jenv);\r
-  gdx_setVector3FrombtVector3(jenv, jresult, result);\r
+  *(btVector3 **)&jresult = new btVector3((const btVector3 &)result); \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1angle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) {\r
+SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1angle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
   jfloat jresult = 0 ;\r
   btVector3 *arg1 = (btVector3 *) 0 ;\r
   btVector3 *arg2 = 0 ;\r
@@ -7761,19 +7783,21 @@ SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVe
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
   arg1 = *(btVector3 **)&jarg1; \r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   result = (btScalar)((btVector3 const *)arg1)->angle((btVector3 const &)*arg2);\r
   jresult = (jfloat)result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1absolute(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1absolute(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  jlong jresult = 0 ;\r
   btVector3 *arg1 = (btVector3 *) 0 ;\r
   btVector3 result;\r
   \r
@@ -7782,14 +7806,13 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btV
   (void)jarg1_;\r
   arg1 = *(btVector3 **)&jarg1; \r
   result = ((btVector3 const *)arg1)->absolute();\r
-  jresult = gdx_getReturnVector3(jenv);\r
-  gdx_setVector3FrombtVector3(jenv, jresult, result);\r
+  *(btVector3 **)&jresult = new btVector3((const btVector3 &)result); \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1cross(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1cross(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
+  jlong jresult = 0 ;\r
   btVector3 *arg1 = (btVector3 *) 0 ;\r
   btVector3 *arg2 = 0 ;\r
   btVector3 result;\r
@@ -7797,19 +7820,20 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btV
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
   arg1 = *(btVector3 **)&jarg1; \r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   result = ((btVector3 const *)arg1)->cross((btVector3 const &)*arg2);\r
-  jresult = gdx_getReturnVector3(jenv);\r
-  gdx_setVector3FrombtVector3(jenv, jresult, result);\r
+  *(btVector3 **)&jresult = new btVector3((const btVector3 &)result); \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1triple(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jobject jarg3) {\r
+SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1triple(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) {\r
   jfloat jresult = 0 ;\r
   btVector3 *arg1 = (btVector3 *) 0 ;\r
   btVector3 *arg2 = 0 ;\r
@@ -7819,15 +7843,19 @@ SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVe
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
+  (void)jarg3_;\r
   arg1 = *(btVector3 **)&jarg1; \r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
-  btVector3 local_arg3;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg3, jarg3);\r
-  arg3 = &local_arg3;\r
-  gdxAutoCommitVector3 auto_commit_arg3(jenv, jarg3, &local_arg3);\r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
+  arg3 = *(btVector3 **)&jarg3;\r
+  if (!arg3) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   result = (btScalar)((btVector3 const *)arg1)->triple((btVector3 const &)*arg2,(btVector3 const &)*arg3);\r
   jresult = (jfloat)result; \r
   return jresult;\r
@@ -7894,7 +7922,7 @@ SWIGEXPORT jint JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVect
 }\r
 \r
 \r
-SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1setInterpolate3(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jobject jarg3, jfloat jarg4) {\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1setInterpolate3(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_, jfloat jarg4) {\r
   btVector3 *arg1 = (btVector3 *) 0 ;\r
   btVector3 *arg2 = 0 ;\r
   btVector3 *arg3 = 0 ;\r
@@ -7903,22 +7931,26 @@ SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVect
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
+  (void)jarg3_;\r
   arg1 = *(btVector3 **)&jarg1; \r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
-  btVector3 local_arg3;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg3, jarg3);\r
-  arg3 = &local_arg3;\r
-  gdxAutoCommitVector3 auto_commit_arg3(jenv, jarg3, &local_arg3);\r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return ;\r
+  } \r
+  arg3 = *(btVector3 **)&jarg3;\r
+  if (!arg3) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return ;\r
+  } \r
   arg4 = (btScalar)jarg4; \r
   (arg1)->setInterpolate3((btVector3 const &)*arg2,(btVector3 const &)*arg3,arg4);\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1lerp(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jfloat jarg3) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1lerp(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jfloat jarg3) {\r
+  jlong jresult = 0 ;\r
   btVector3 *arg1 = (btVector3 *) 0 ;\r
   btVector3 *arg2 = 0 ;\r
   btScalar *arg3 = 0 ;\r
@@ -7928,16 +7960,17 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btV
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
   arg1 = *(btVector3 **)&jarg1; \r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   temp3 = (btScalar)jarg3; \r
   arg3 = &temp3; \r
   result = ((btVector3 const *)arg1)->lerp((btVector3 const &)*arg2,(btScalar const &)*arg3);\r
-  jresult = gdx_getReturnVector3(jenv);\r
-  gdx_setVector3FrombtVector3(jenv, jresult, result);\r
+  *(btVector3 **)&jresult = new btVector3((const btVector3 &)result); \r
   return jresult;\r
 }\r
 \r
@@ -8099,34 +8132,38 @@ SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVe
 }\r
 \r
 \r
-SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1setMax(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) {\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1setMax(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
   btVector3 *arg1 = (btVector3 *) 0 ;\r
   btVector3 *arg2 = 0 ;\r
   \r
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
   arg1 = *(btVector3 **)&jarg1; \r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return ;\r
+  } \r
   (arg1)->setMax((btVector3 const &)*arg2);\r
 }\r
 \r
 \r
-SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1setMin(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) {\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1setMin(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
   btVector3 *arg1 = (btVector3 *) 0 ;\r
   btVector3 *arg2 = 0 ;\r
   \r
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
   arg1 = *(btVector3 **)&jarg1; \r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return ;\r
+  } \r
   (arg1)->setMin((btVector3 const &)*arg2);\r
 }\r
 \r
@@ -8375,8 +8412,8 @@ SWIGEXPORT jint JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVect
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1dot3(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jobject jarg3, jobject jarg4) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btVector3_1dot3(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
   btVector3 *arg1 = (btVector3 *) 0 ;\r
   btVector3 *arg2 = 0 ;\r
   btVector3 *arg3 = 0 ;\r
@@ -8386,22 +8423,27 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btV
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
+  (void)jarg3_;\r
+  (void)jarg4_;\r
   arg1 = *(btVector3 **)&jarg1; \r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
-  btVector3 local_arg3;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg3, jarg3);\r
-  arg3 = &local_arg3;\r
-  gdxAutoCommitVector3 auto_commit_arg3(jenv, jarg3, &local_arg3);\r
-  btVector3 local_arg4;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg4, jarg4);\r
-  arg4 = &local_arg4;\r
-  gdxAutoCommitVector3 auto_commit_arg4(jenv, jarg4, &local_arg4);\r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
+  arg3 = *(btVector3 **)&jarg3;\r
+  if (!arg3) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
+  arg4 = *(btVector3 **)&jarg4;\r
+  if (!arg4) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   result = ((btVector3 const *)arg1)->dot3((btVector3 const &)*arg2,(btVector3 const &)*arg3,(btVector3 const &)*arg4);\r
-  jresult = gdx_getReturnVector3(jenv);\r
-  gdx_setVector3FrombtVector3(jenv, jresult, result);\r
+  *(btVector3 **)&jresult = new btVector3((const btVector3 &)result); \r
   return jresult;\r
 }\r
 \r
@@ -8416,7 +8458,7 @@ SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_delete
 }\r
 \r
 \r
-SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btDot(JNIEnv *jenv, jclass jcls, jobject jarg1, jobject jarg2) {\r
+SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btDot(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
   jfloat jresult = 0 ;\r
   btVector3 *arg1 = 0 ;\r
   btVector3 *arg2 = 0 ;\r
@@ -8424,21 +8466,25 @@ SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btDo
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btVector3 local_arg1;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitVector3 auto_commit_arg1(jenv, jarg1, &local_arg1);\r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  arg1 = *(btVector3 **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   result = (btScalar)btDot((btVector3 const &)*arg1,(btVector3 const &)*arg2);\r
   jresult = (jfloat)result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btDistance2(JNIEnv *jenv, jclass jcls, jobject jarg1, jobject jarg2) {\r
+SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btDistance2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
   jfloat jresult = 0 ;\r
   btVector3 *arg1 = 0 ;\r
   btVector3 *arg2 = 0 ;\r
@@ -8446,21 +8492,25 @@ SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btDi
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btVector3 local_arg1;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitVector3 auto_commit_arg1(jenv, jarg1, &local_arg1);\r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  arg1 = *(btVector3 **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   result = (btScalar)btDistance2((btVector3 const &)*arg1,(btVector3 const &)*arg2);\r
   jresult = (jfloat)result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btDistance(JNIEnv *jenv, jclass jcls, jobject jarg1, jobject jarg2) {\r
+SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btDistance(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
   jfloat jresult = 0 ;\r
   btVector3 *arg1 = 0 ;\r
   btVector3 *arg2 = 0 ;\r
@@ -8468,21 +8518,25 @@ SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btDi
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btVector3 local_arg1;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitVector3 auto_commit_arg1(jenv, jarg1, &local_arg1);\r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  arg1 = *(btVector3 **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   result = (btScalar)btDistance((btVector3 const &)*arg1,(btVector3 const &)*arg2);\r
   jresult = (jfloat)result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btAngle_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jobject jarg1, jobject jarg2) {\r
+SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btAngle_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
   jfloat jresult = 0 ;\r
   btVector3 *arg1 = 0 ;\r
   btVector3 *arg2 = 0 ;\r
@@ -8490,44 +8544,51 @@ SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btAn
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btVector3 local_arg1;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitVector3 auto_commit_arg1(jenv, jarg1, &local_arg1);\r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  arg1 = *(btVector3 **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   result = (btScalar)btAngle((btVector3 const &)*arg1,(btVector3 const &)*arg2);\r
   jresult = (jfloat)result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btCross(JNIEnv *jenv, jclass jcls, jobject jarg1, jobject jarg2) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btCross(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
+  jlong jresult = 0 ;\r
   btVector3 *arg1 = 0 ;\r
   btVector3 *arg2 = 0 ;\r
   btVector3 result;\r
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btVector3 local_arg1;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitVector3 auto_commit_arg1(jenv, jarg1, &local_arg1);\r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  arg1 = *(btVector3 **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   result = btCross((btVector3 const &)*arg1,(btVector3 const &)*arg2);\r
-  jresult = gdx_getReturnVector3(jenv);\r
-  gdx_setVector3FrombtVector3(jenv, jresult, result);\r
+  *(btVector3 **)&jresult = new btVector3((const btVector3 &)result); \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTriple(JNIEnv *jenv, jclass jcls, jobject jarg1, jobject jarg2, jobject jarg3) {\r
+SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTriple(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) {\r
   jfloat jresult = 0 ;\r
   btVector3 *arg1 = 0 ;\r
   btVector3 *arg2 = 0 ;\r
@@ -8536,26 +8597,32 @@ SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btTr
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btVector3 local_arg1;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitVector3 auto_commit_arg1(jenv, jarg1, &local_arg1);\r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
-  btVector3 local_arg3;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg3, jarg3);\r
-  arg3 = &local_arg3;\r
-  gdxAutoCommitVector3 auto_commit_arg3(jenv, jarg3, &local_arg3);\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  (void)jarg3_;\r
+  arg1 = *(btVector3 **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
+  arg3 = *(btVector3 **)&jarg3;\r
+  if (!arg3) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   result = (btScalar)btTriple((btVector3 const &)*arg1,(btVector3 const &)*arg2,(btVector3 const &)*arg3);\r
   jresult = (jfloat)result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_lerp(JNIEnv *jenv, jclass jcls, jobject jarg1, jobject jarg2, jfloat jarg3) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_lerp(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jfloat jarg3) {\r
+  jlong jresult = 0 ;\r
   btVector3 *arg1 = 0 ;\r
   btVector3 *arg2 = 0 ;\r
   btScalar *arg3 = 0 ;\r
@@ -8564,19 +8631,22 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_ler
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btVector3 local_arg1;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitVector3 auto_commit_arg1(jenv, jarg1, &local_arg1);\r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  arg1 = *(btVector3 **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   temp3 = (btScalar)jarg3; \r
   arg3 = &temp3; \r
   result = lerp((btVector3 const &)*arg1,(btVector3 const &)*arg2,(float const &)*arg3);\r
-  jresult = gdx_getReturnVector3(jenv);\r
-  gdx_setVector3FrombtVector3(jenv, jresult, result);\r
+  *(btVector3 **)&jresult = new btVector3((const btVector3 &)result); \r
   return jresult;\r
 }\r
 \r
@@ -8751,33 +8821,39 @@ SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btSwap
 }\r
 \r
 \r
-SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btSwapVector3Endian(JNIEnv *jenv, jclass jcls, jobject jarg1, jobject jarg2) {\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btSwapVector3Endian(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
   btVector3 *arg1 = 0 ;\r
   btVector3 *arg2 = 0 ;\r
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btVector3 local_arg1;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitVector3 auto_commit_arg1(jenv, jarg1, &local_arg1);\r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  arg1 = *(btVector3 **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return ;\r
+  } \r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 & reference is null");\r
+    return ;\r
+  } \r
   btSwapVector3Endian((btVector3 const &)*arg1,*arg2);\r
 }\r
 \r
 \r
-SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btUnSwapVector3Endian(JNIEnv *jenv, jclass jcls, jobject jarg1) {\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btUnSwapVector3Endian(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
   btVector3 *arg1 = 0 ;\r
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btVector3 local_arg1;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitVector3 auto_commit_arg1(jenv, jarg1, &local_arg1);\r
+  (void)jarg1_;\r
+  arg1 = *(btVector3 **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 & reference is null");\r
+    return ;\r
+  } \r
   btUnSwapVector3Endian(*arg1);\r
 }\r
 \r
@@ -8944,7 +9020,7 @@ SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1
 }\r
 \r
 \r
-SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1btQuaternion_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jobject jarg1, jfloat jarg2) {\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1btQuaternion_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jfloat jarg2) {\r
   jlong jresult = 0 ;\r
   btVector3 *arg1 = 0 ;\r
   btScalar *arg2 = 0 ;\r
@@ -8953,10 +9029,12 @@ SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btVector3 local_arg1;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitVector3 auto_commit_arg1(jenv, jarg1, &local_arg1);\r
+  (void)jarg1_;\r
+  arg1 = *(btVector3 **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   temp2 = (btScalar)jarg2; \r
   arg2 = &temp2; \r
   result = (btQuaternion *)new btQuaternion((btVector3 const &)*arg1,(btScalar const &)*arg2);\r
@@ -8989,7 +9067,7 @@ SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_new_1
 }\r
 \r
 \r
-SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1setRotation(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jfloat jarg3) {\r
+SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1setRotation(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jfloat jarg3) {\r
   btQuaternion *arg1 = (btQuaternion *) 0 ;\r
   btVector3 *arg2 = 0 ;\r
   btScalar *arg3 = 0 ;\r
@@ -8998,11 +9076,13 @@ SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuat
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
   arg1 = *(btQuaternion **)&jarg1; \r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return ;\r
+  } \r
   temp3 = (btScalar)jarg3; \r
   arg3 = &temp3; \r
   (arg1)->setRotation((btVector3 const &)*arg2,(btScalar const &)*arg3);\r
@@ -9055,7 +9135,7 @@ SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuat
 }\r
 \r
 \r
-SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1dot(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) {\r
+SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1dot(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
   jfloat jresult = 0 ;\r
   btQuaternion *arg1 = (btQuaternion *) 0 ;\r
   btQuaternion *arg2 = 0 ;\r
@@ -9064,11 +9144,13 @@ SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQu
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
   arg1 = *(btQuaternion **)&jarg1; \r
-  btQuaternion local_arg2;\r
-  gdx_setbtQuaternionFromQuaternion(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitQuaternion auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  arg2 = *(btQuaternion **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btQuaternion const & reference is null");\r
+    return 0;\r
+  } \r
   result = (btScalar)((btQuaternion const *)arg1)->dot((btQuaternion const &)*arg2);\r
   jresult = (jfloat)result; \r
   return jresult;\r
@@ -9105,8 +9187,8 @@ SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQu
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1normalize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1normalize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  jlong jresult = 0 ;\r
   btQuaternion *arg1 = (btQuaternion *) 0 ;\r
   btQuaternion *result = 0 ;\r
   \r
@@ -9115,14 +9197,13 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQ
   (void)jarg1_;\r
   arg1 = *(btQuaternion **)&jarg1; \r
   result = (btQuaternion *) &(arg1)->normalize();\r
-  jresult = gdx_getReturnQuaternion(jenv);\r
-  gdx_setQuaternionFrombtQuaternion(jenv, jresult, result);\r
+  *(btQuaternion **)&jresult = result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1normalized(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1normalized(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  jlong jresult = 0 ;\r
   btQuaternion *arg1 = (btQuaternion *) 0 ;\r
   btQuaternion result;\r
   \r
@@ -9131,13 +9212,12 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQ
   (void)jarg1_;\r
   arg1 = *(btQuaternion **)&jarg1; \r
   result = ((btQuaternion const *)arg1)->normalized();\r
-  jresult = gdx_getReturnQuaternion(jenv);\r
-  gdx_setQuaternionFrombtQuaternion(jenv, jresult, result);\r
+  *(btQuaternion **)&jresult = new btQuaternion((const btQuaternion &)result); \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1angle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) {\r
+SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1angle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
   jfloat jresult = 0 ;\r
   btQuaternion *arg1 = (btQuaternion *) 0 ;\r
   btQuaternion *arg2 = 0 ;\r
@@ -9146,11 +9226,13 @@ SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQu
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
   arg1 = *(btQuaternion **)&jarg1; \r
-  btQuaternion local_arg2;\r
-  gdx_setbtQuaternionFromQuaternion(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitQuaternion auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  arg2 = *(btQuaternion **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btQuaternion const & reference is null");\r
+    return 0;\r
+  } \r
   result = (btScalar)((btQuaternion const *)arg1)->angle((btQuaternion const &)*arg2);\r
   jresult = (jfloat)result; \r
   return jresult;\r
@@ -9172,8 +9254,8 @@ SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQu
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1getAxis(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1getAxis(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  jlong jresult = 0 ;\r
   btQuaternion *arg1 = (btQuaternion *) 0 ;\r
   btVector3 result;\r
   \r
@@ -9182,14 +9264,13 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQ
   (void)jarg1_;\r
   arg1 = *(btQuaternion **)&jarg1; \r
   result = ((btQuaternion const *)arg1)->getAxis();\r
-  jresult = gdx_getReturnVector3(jenv);\r
-  gdx_setVector3FrombtVector3(jenv, jresult, result);\r
+  *(btVector3 **)&jresult = new btVector3((const btVector3 &)result); \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1inverse(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1inverse(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  jlong jresult = 0 ;\r
   btQuaternion *arg1 = (btQuaternion *) 0 ;\r
   btQuaternion result;\r
   \r
@@ -9198,14 +9279,13 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQ
   (void)jarg1_;\r
   arg1 = *(btQuaternion **)&jarg1; \r
   result = ((btQuaternion const *)arg1)->inverse();\r
-  jresult = gdx_getReturnQuaternion(jenv);\r
-  gdx_setQuaternionFrombtQuaternion(jenv, jresult, result);\r
+  *(btQuaternion **)&jresult = new btQuaternion((const btQuaternion &)result); \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1farthest(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1farthest(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
+  jlong jresult = 0 ;\r
   btQuaternion *arg1 = (btQuaternion *) 0 ;\r
   btQuaternion *arg2 = 0 ;\r
   btQuaternion result;\r
@@ -9213,20 +9293,21 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQ
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
   arg1 = *(btQuaternion **)&jarg1; \r
-  btQuaternion local_arg2;\r
-  gdx_setbtQuaternionFromQuaternion(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitQuaternion auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  arg2 = *(btQuaternion **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btQuaternion const & reference is null");\r
+    return 0;\r
+  } \r
   result = ((btQuaternion const *)arg1)->farthest((btQuaternion const &)*arg2);\r
-  jresult = gdx_getReturnQuaternion(jenv);\r
-  gdx_setQuaternionFrombtQuaternion(jenv, jresult, result);\r
+  *(btQuaternion **)&jresult = new btQuaternion((const btQuaternion &)result); \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1nearest(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1nearest(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
+  jlong jresult = 0 ;\r
   btQuaternion *arg1 = (btQuaternion *) 0 ;\r
   btQuaternion *arg2 = 0 ;\r
   btQuaternion result;\r
@@ -9234,20 +9315,21 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQ
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
   arg1 = *(btQuaternion **)&jarg1; \r
-  btQuaternion local_arg2;\r
-  gdx_setbtQuaternionFromQuaternion(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitQuaternion auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  arg2 = *(btQuaternion **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btQuaternion const & reference is null");\r
+    return 0;\r
+  } \r
   result = ((btQuaternion const *)arg1)->nearest((btQuaternion const &)*arg2);\r
-  jresult = gdx_getReturnQuaternion(jenv);\r
-  gdx_setQuaternionFrombtQuaternion(jenv, jresult, result);\r
+  *(btQuaternion **)&jresult = new btQuaternion((const btQuaternion &)result); \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1slerp(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jfloat jarg3) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1slerp(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jfloat jarg3) {\r
+  jlong jresult = 0 ;\r
   btQuaternion *arg1 = (btQuaternion *) 0 ;\r
   btQuaternion *arg2 = 0 ;\r
   btScalar *arg3 = 0 ;\r
@@ -9257,29 +9339,29 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQ
   (void)jenv;\r
   (void)jcls;\r
   (void)jarg1_;\r
+  (void)jarg2_;\r
   arg1 = *(btQuaternion **)&jarg1; \r
-  btQuaternion local_arg2;\r
-  gdx_setbtQuaternionFromQuaternion(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitQuaternion auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  arg2 = *(btQuaternion **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btQuaternion const & reference is null");\r
+    return 0;\r
+  } \r
   temp3 = (btScalar)jarg3; \r
   arg3 = &temp3; \r
   result = ((btQuaternion const *)arg1)->slerp((btQuaternion const &)*arg2,(btScalar const &)*arg3);\r
-  jresult = gdx_getReturnQuaternion(jenv);\r
-  gdx_setQuaternionFrombtQuaternion(jenv, jresult, result);\r
+  *(btQuaternion **)&jresult = new btQuaternion((const btQuaternion &)result); \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1getIdentity(JNIEnv *jenv, jclass jcls) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btQuaternion_1getIdentity(JNIEnv *jenv, jclass jcls) {\r
+  jlong jresult = 0 ;\r
   btQuaternion *result = 0 ;\r
   \r
   (void)jenv;\r
   (void)jcls;\r
   result = (btQuaternion *) &btQuaternion::getIdentity();\r
-  jresult = gdx_getReturnQuaternion(jenv);\r
-  gdx_setQuaternionFrombtQuaternion(jenv, jresult, result);\r
+  *(btQuaternion **)&jresult = result; \r
   return jresult;\r
 }\r
 \r
@@ -9309,7 +9391,7 @@ SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_delete
 }\r
 \r
 \r
-SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_dot(JNIEnv *jenv, jclass jcls, jobject jarg1, jobject jarg2) {\r
+SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_dot(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
   jfloat jresult = 0 ;\r
   btQuaternion *arg1 = 0 ;\r
   btQuaternion *arg2 = 0 ;\r
@@ -9317,38 +9399,44 @@ SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_dot(
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btQuaternion local_arg1;\r
-  gdx_setbtQuaternionFromQuaternion(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitQuaternion auto_commit_arg1(jenv, jarg1, &local_arg1);\r
-  btQuaternion local_arg2;\r
-  gdx_setbtQuaternionFromQuaternion(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitQuaternion auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  arg1 = *(btQuaternion **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btQuaternion const & reference is null");\r
+    return 0;\r
+  } \r
+  arg2 = *(btQuaternion **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btQuaternion const & reference is null");\r
+    return 0;\r
+  } \r
   result = (btScalar)dot((btQuaternion const &)*arg1,(btQuaternion const &)*arg2);\r
   jresult = (jfloat)result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_length(JNIEnv *jenv, jclass jcls, jobject jarg1) {\r
+SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_length(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
   jfloat jresult = 0 ;\r
   btQuaternion *arg1 = 0 ;\r
   btScalar result;\r
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btQuaternion local_arg1;\r
-  gdx_setbtQuaternionFromQuaternion(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitQuaternion auto_commit_arg1(jenv, jarg1, &local_arg1);\r
+  (void)jarg1_;\r
+  arg1 = *(btQuaternion **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btQuaternion const & reference is null");\r
+    return 0;\r
+  } \r
   result = (btScalar)length((btQuaternion const &)*arg1);\r
   jresult = (jfloat)result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btAngle_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jobject jarg1, jobject jarg2) {\r
+SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btAngle_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
   jfloat jresult = 0 ;\r
   btQuaternion *arg1 = 0 ;\r
   btQuaternion *arg2 = 0 ;\r
@@ -9356,40 +9444,45 @@ SWIGEXPORT jfloat JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btAn
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btQuaternion local_arg1;\r
-  gdx_setbtQuaternionFromQuaternion(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitQuaternion auto_commit_arg1(jenv, jarg1, &local_arg1);\r
-  btQuaternion local_arg2;\r
-  gdx_setbtQuaternionFromQuaternion(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitQuaternion auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  arg1 = *(btQuaternion **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btQuaternion const & reference is null");\r
+    return 0;\r
+  } \r
+  arg2 = *(btQuaternion **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btQuaternion const & reference is null");\r
+    return 0;\r
+  } \r
   result = (btScalar)btAngle((btQuaternion const &)*arg1,(btQuaternion const &)*arg2);\r
   jresult = (jfloat)result; \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_inverse(JNIEnv *jenv, jclass jcls, jobject jarg1) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_inverse(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {\r
+  jlong jresult = 0 ;\r
   btQuaternion *arg1 = 0 ;\r
   btQuaternion result;\r
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btQuaternion local_arg1;\r
-  gdx_setbtQuaternionFromQuaternion(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitQuaternion auto_commit_arg1(jenv, jarg1, &local_arg1);\r
+  (void)jarg1_;\r
+  arg1 = *(btQuaternion **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btQuaternion const & reference is null");\r
+    return 0;\r
+  } \r
   result = inverse((btQuaternion const &)*arg1);\r
-  jresult = gdx_getReturnQuaternion(jenv);\r
-  gdx_setQuaternionFrombtQuaternion(jenv, jresult, result);\r
+  *(btQuaternion **)&jresult = new btQuaternion((const btQuaternion &)result); \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_slerp(JNIEnv *jenv, jclass jcls, jobject jarg1, jobject jarg2, jfloat jarg3) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_slerp(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jfloat jarg3) {\r
+  jlong jresult = 0 ;\r
   btQuaternion *arg1 = 0 ;\r
   btQuaternion *arg2 = 0 ;\r
   btScalar *arg3 = 0 ;\r
@@ -9398,88 +9491,100 @@ SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_sle
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btQuaternion local_arg1;\r
-  gdx_setbtQuaternionFromQuaternion(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitQuaternion auto_commit_arg1(jenv, jarg1, &local_arg1);\r
-  btQuaternion local_arg2;\r
-  gdx_setbtQuaternionFromQuaternion(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitQuaternion auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  arg1 = *(btQuaternion **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btQuaternion const & reference is null");\r
+    return 0;\r
+  } \r
+  arg2 = *(btQuaternion **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btQuaternion const & reference is null");\r
+    return 0;\r
+  } \r
   temp3 = (btScalar)jarg3; \r
   arg3 = &temp3; \r
   result = slerp((btQuaternion const &)*arg1,(btQuaternion const &)*arg2,(float const &)*arg3);\r
-  jresult = gdx_getReturnQuaternion(jenv);\r
-  gdx_setQuaternionFrombtQuaternion(jenv, jresult, result);\r
+  *(btQuaternion **)&jresult = new btQuaternion((const btQuaternion &)result); \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_quatRotate(JNIEnv *jenv, jclass jcls, jobject jarg1, jobject jarg2) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_quatRotate(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
+  jlong jresult = 0 ;\r
   btQuaternion *arg1 = 0 ;\r
   btVector3 *arg2 = 0 ;\r
   btVector3 result;\r
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btQuaternion local_arg1;\r
-  gdx_setbtQuaternionFromQuaternion(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitQuaternion auto_commit_arg1(jenv, jarg1, &local_arg1);\r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  arg1 = *(btQuaternion **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btQuaternion const & reference is null");\r
+    return 0;\r
+  } \r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   result = quatRotate((btQuaternion const &)*arg1,(btVector3 const &)*arg2);\r
-  jresult = gdx_getReturnVector3(jenv);\r
-  gdx_setVector3FrombtVector3(jenv, jresult, result);\r
+  *(btVector3 **)&jresult = new btVector3((const btVector3 &)result); \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_shortestArcQuat(JNIEnv *jenv, jclass jcls, jobject jarg1, jobject jarg2) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_shortestArcQuat(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
+  jlong jresult = 0 ;\r
   btVector3 *arg1 = 0 ;\r
   btVector3 *arg2 = 0 ;\r
   btQuaternion result;\r
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btVector3 local_arg1;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitVector3 auto_commit_arg1(jenv, jarg1, &local_arg1);\r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  arg1 = *(btVector3 **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 const & reference is null");\r
+    return 0;\r
+  } \r
   result = shortestArcQuat((btVector3 const &)*arg1,(btVector3 const &)*arg2);\r
-  jresult = gdx_getReturnQuaternion(jenv);\r
-  gdx_setQuaternionFrombtQuaternion(jenv, jresult, result);\r
+  *(btQuaternion **)&jresult = new btQuaternion((const btQuaternion &)result); \r
   return jresult;\r
 }\r
 \r
 \r
-SWIGEXPORT jobject JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_shortestArcQuatNormalize2(JNIEnv *jenv, jclass jcls, jobject jarg1, jobject jarg2) {\r
-  jobject jresult = 0 ;\r
+SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_shortestArcQuatNormalize2(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {\r
+  jlong jresult = 0 ;\r
   btVector3 *arg1 = 0 ;\r
   btVector3 *arg2 = 0 ;\r
   btQuaternion result;\r
   \r
   (void)jenv;\r
   (void)jcls;\r
-  btVector3 local_arg1;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg1, jarg1);\r
-  arg1 = &local_arg1;\r
-  gdxAutoCommitVector3 auto_commit_arg1(jenv, jarg1, &local_arg1);\r
-  btVector3 local_arg2;\r
-  gdx_setbtVector3FromVector3(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitVector3 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
+  (void)jarg1_;\r
+  (void)jarg2_;\r
+  arg1 = *(btVector3 **)&jarg1;\r
+  if (!arg1) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 & reference is null");\r
+    return 0;\r
+  } \r
+  arg2 = *(btVector3 **)&jarg2;\r
+  if (!arg2) {\r
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "btVector3 & reference is null");\r
+    return 0;\r
+  } \r
   result = shortestArcQuatNormalize2(*arg1,*arg2);\r
-  jresult = gdx_getReturnQuaternion(jenv);\r
-  gdx_setQuaternionFrombtQuaternion(jenv, jresult, result);\r
+  *(btQuaternion **)&jresult = new btQuaternion((const btQuaternion &)result); \r
   return jresult;\r
 }\r
 \r
@@ -57958,22 +58063,6 @@ SWIGEXPORT jlong JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btSol
 }\r
 \r
 \r
-SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btSolverBody_1setWorldTransform(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2) {\r
-  btSolverBody *arg1 = (btSolverBody *) 0 ;\r
-  btTransform *arg2 = 0 ;\r
-  \r
-  (void)jenv;\r
-  (void)jcls;\r
-  (void)jarg1_;\r
-  arg1 = *(btSolverBody **)&jarg1; \r
-  btTransform local_arg2;\r
-  gdx_setbtTransformFromMatrix4(jenv, local_arg2, jarg2);\r
-  arg2 = &local_arg2;\r
-  gdxAutoCommitMatrix4 auto_commit_arg2(jenv, jarg2, &local_arg2);\r
-  (arg1)->setWorldTransform((btTransform const &)*arg2);\r
-}\r
-\r
-\r
 SWIGEXPORT void JNICALL Java_com_badlogic_gdx_physics_bullet_gdxBulletJNI_btSolverBody_1getVelocityInLocalPointObsolete(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jobject jarg3) {\r
   btSolverBody *arg1 = (btSolverBody *) 0 ;\r
   btVector3 *arg2 = 0 ;\r
index f87aaef..ad8d3e5 100644 (file)
@@ -56,6 +56,7 @@
 %}
 %include "BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h"
 
+
 %{
 #include <BulletDynamics/ConstraintSolver/btSolverBody.h>
 %}
index d1ecad8..1c62ffa 100644 (file)
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
+    <ClInclude Include="..\..\..\src\bullet\btBulletCollisionCommon.h" />
+    <ClInclude Include="..\..\..\src\bullet\btBulletDynamicsCommon.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btActivatingCollisionAlgorithm.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btBox2dBox2dCollisionAlgorithm.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btBoxBoxCollisionAlgorithm.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btBoxBoxDetector.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btCollisionConfiguration.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btCollisionCreateFunc.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btCollisionDispatcher.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btCollisionObject.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btCollisionObjectWrapper.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btCollisionWorld.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btCompoundCollisionAlgorithm.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btConvex2dConvex2dAlgorithm.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btConvexConcaveCollisionAlgorithm.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btConvexConvexAlgorithm.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btConvexPlaneCollisionAlgorithm.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btDefaultCollisionConfiguration.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btEmptyCollisionAlgorithm.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btGhostObject.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btInternalEdgeUtility.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btManifoldResult.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btSimulationIslandManager.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btSphereBoxCollisionAlgorithm.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btSphereSphereCollisionAlgorithm.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btSphereTriangleCollisionAlgorithm.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btUnionFind.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\SphereTriangleDetector.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btContinuousConvexCollision.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btConvexCast.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btConvexPenetrationDepthSolver.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btDiscreteCollisionDetectorInterface.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btGjkConvexCast.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btGjkEpa2.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btGjkEpaPenetrationDepthSolver.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btGjkPairDetector.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btManifoldPoint.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btMinkowskiPenetrationDepthSolver.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btPersistentManifold.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btPointCollector.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btPolyhedralContactClipping.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btRaycastCallback.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btSimplexSolverInterface.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btSubSimplexConvexCast.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btVoronoiSimplexSolver.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletDynamics\Dynamics\btActionInterface.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletDynamics\Dynamics\btDiscreteDynamicsWorld.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletDynamics\Dynamics\btDynamicsWorld.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletDynamics\Dynamics\btRigidBody.h" />
+    <ClInclude Include="..\..\..\src\bullet\BulletDynamics\Dynamics\btSimpleDynamicsWorld.h" />
     <ClInclude Include="..\..\..\src\custom\gdx\ClosestNotMeConvexResultCallback.h" />
     <ClInclude Include="..\..\..\src\custom\gdx\ClosestNotMeRayResultCallback.h" />
     <ClInclude Include="..\..\..\src\custom\gdx\ContactCache.h" />
index 876ca91..4dc4c45 100644 (file)
     <Filter Include="Header Files\custom\gdx">
       <UniqueIdentifier>{d2d3d622-b370-4e5b-aa5b-a73cb5c4fda2}</UniqueIdentifier>
     </Filter>
+    <Filter Include="Header Files\bullet">
+      <UniqueIdentifier>{cc9e0a2b-20f6-4eaa-a3e2-40e17866aa06}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\bullet\BulletDynamics">
+      <UniqueIdentifier>{4b4221e4-4d94-4fe4-96f1-fcacc46ab2e0}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\bullet\BulletDynamics\Dynamics">
+      <UniqueIdentifier>{7058cbd8-3ae8-4f61-9290-0a3e1b15381a}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\bullet\BulletCollision">
+      <UniqueIdentifier>{c0fbe8a9-df71-48e0-97e6-be91c5f48eae}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\bullet\BulletCollision\CollisionDispatch">
+      <UniqueIdentifier>{9bb2e31b-70b7-4ceb-a878-fa26a8d12716}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\bullet\BulletCollision\NarrowPhaseCollision">
+      <UniqueIdentifier>{7c989a37-0a86-465f-8e4c-a57c118db5af}</UniqueIdentifier>
+    </Filter>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\..\swig-src\gdxBullet_wrap.h">
     <ClInclude Include="..\..\..\src\custom\gdx\ContactCache.h">
       <Filter>Header Files\custom\gdx</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\btBulletDynamicsCommon.h">
+      <Filter>Header Files\bullet</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\btBulletCollisionCommon.h">
+      <Filter>Header Files\bullet</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletDynamics\Dynamics\btSimpleDynamicsWorld.h">
+      <Filter>Header Files\bullet\BulletDynamics\Dynamics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletDynamics\Dynamics\btActionInterface.h">
+      <Filter>Header Files\bullet\BulletDynamics\Dynamics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletDynamics\Dynamics\btDiscreteDynamicsWorld.h">
+      <Filter>Header Files\bullet\BulletDynamics\Dynamics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletDynamics\Dynamics\btDynamicsWorld.h">
+      <Filter>Header Files\bullet\BulletDynamics\Dynamics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletDynamics\Dynamics\btRigidBody.h">
+      <Filter>Header Files\bullet\BulletDynamics\Dynamics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btUnionFind.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\SphereTriangleDetector.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btActivatingCollisionAlgorithm.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btBox2dBox2dCollisionAlgorithm.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btBoxBoxCollisionAlgorithm.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btBoxBoxDetector.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btCollisionConfiguration.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btCollisionCreateFunc.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btCollisionDispatcher.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btCollisionObject.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btCollisionObjectWrapper.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btCollisionWorld.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btCompoundCollisionAlgorithm.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btConvex2dConvex2dAlgorithm.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btConvexConcaveCollisionAlgorithm.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btConvexConvexAlgorithm.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btConvexPlaneCollisionAlgorithm.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btDefaultCollisionConfiguration.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btEmptyCollisionAlgorithm.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btGhostObject.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btInternalEdgeUtility.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btManifoldResult.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btSimulationIslandManager.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btSphereBoxCollisionAlgorithm.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btSphereSphereCollisionAlgorithm.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\CollisionDispatch\btSphereTriangleCollisionAlgorithm.h">
+      <Filter>Header Files\bullet\BulletCollision\CollisionDispatch</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btGjkConvexCast.h">
+      <Filter>Header Files\bullet\BulletCollision\NarrowPhaseCollision</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btGjkEpa2.h">
+      <Filter>Header Files\bullet\BulletCollision\NarrowPhaseCollision</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btGjkEpaPenetrationDepthSolver.h">
+      <Filter>Header Files\bullet\BulletCollision\NarrowPhaseCollision</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btGjkPairDetector.h">
+      <Filter>Header Files\bullet\BulletCollision\NarrowPhaseCollision</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btManifoldPoint.h">
+      <Filter>Header Files\bullet\BulletCollision\NarrowPhaseCollision</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btMinkowskiPenetrationDepthSolver.h">
+      <Filter>Header Files\bullet\BulletCollision\NarrowPhaseCollision</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btPersistentManifold.h">
+      <Filter>Header Files\bullet\BulletCollision\NarrowPhaseCollision</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btPointCollector.h">
+      <Filter>Header Files\bullet\BulletCollision\NarrowPhaseCollision</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btPolyhedralContactClipping.h">
+      <Filter>Header Files\bullet\BulletCollision\NarrowPhaseCollision</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btRaycastCallback.h">
+      <Filter>Header Files\bullet\BulletCollision\NarrowPhaseCollision</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btSimplexSolverInterface.h">
+      <Filter>Header Files\bullet\BulletCollision\NarrowPhaseCollision</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btSubSimplexConvexCast.h">
+      <Filter>Header Files\bullet\BulletCollision\NarrowPhaseCollision</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btVoronoiSimplexSolver.h">
+      <Filter>Header Files\bullet\BulletCollision\NarrowPhaseCollision</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btContinuousConvexCollision.h">
+      <Filter>Header Files\bullet\BulletCollision\NarrowPhaseCollision</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btConvexCast.h">
+      <Filter>Header Files\bullet\BulletCollision\NarrowPhaseCollision</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btConvexPenetrationDepthSolver.h">
+      <Filter>Header Files\bullet\BulletCollision\NarrowPhaseCollision</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\src\bullet\BulletCollision\NarrowPhaseCollision\btDiscreteCollisionDetectorInterface.h">
+      <Filter>Header Files\bullet\BulletCollision\NarrowPhaseCollision</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\..\swig-src\gdxBullet_wrap.cpp">