I made SixDofSpringJoint class and bug fix patch for native bullet.
OpenSolaris x86(32bit)binary is here.
http://chototsumoushinp.dip.jp/miku/souko/test3/jME3-bullet-natives-solaris.jar
Thanks.
[patch]
Index: com_jme3_bullet_PhysicsSpace.cpp
— com_jme3_bullet_PhysicsSpace.cpp Base (BASE)
+++ com_jme3_bullet_PhysicsSpace.cpp Locally Modified (Based On LOCAL)
@@ -124,7 +124,7 @@
- Signature: (JJ)V
*/
JNIEXPORT void JNICALL Java_com_jme3_bullet_PhysicsSpace_addRigidBody
- (JNIEnv * env, jobject object, jlong spaceId, jlong rigidBodyId) {
- (JNIEnv * env, jobject object, jlong spaceId, jlong rigidBodyId, jshort group, jshort groups) {
jmePhysicsSpace* space = (jmePhysicsSpace*) spaceId;
btRigidBody* collisionObject = (btRigidBody*) rigidBodyId;
if (space == NULL) {
@@ -137,7 +137,9 @@
env->ThrowNew(newExc, "The collision object does not exist.");
return;
}
-
space->getDynamicsWorld()->addRigidBody(collisionObject, group, groups);<br />
-
collisionObject->setActivationState(DISABLE_DEACTIVATION);<br />
-
printf("addRigidBody:group = %d groups = %dn", group, groups);<br />
}
/*
@@ -159,7 +161,6 @@
env->ThrowNew(newExc, "The collision object does not exist.");
return;
}
}
/
Index: com_jme3_bullet_PhysicsSpace.h
— com_jme3_bullet_PhysicsSpace.h Base (BASE)
+++ com_jme3_bullet_PhysicsSpace.h Locally Modified (Based On LOCAL)
@@ -50,10 +50,10 @@
/
- Class: com_jme3_bullet_PhysicsSpace
- Method: addRigidBody
-
- Signature: (JJSS)V
*/
JNIEXPORT void JNICALL Java_com_jme3_bullet_PhysicsSpace_addRigidBody
- (JNIEnv *, jobject, jlong, jlong);
- (JNIEnv , jobject, jlong, jlong, jshort, jshort);
/
- Class: com_jme3_bullet_PhysicsSpace
Index: com_jme3_bullet_joints_SixDofJoint.cpp
— com_jme3_bullet_joints_SixDofJoint.cpp Base (BASE)
+++ com_jme3_bullet_joints_SixDofJoint.cpp Locally Modified (Based On LOCAL)
@@ -85,7 +85,7 @@
btGeneric6DofConstraint* joint = (btGeneric6DofConstraint*) jointId;
btVector3* vec = &btVector3();
jmeBulletUtil::convert(env, vector, vec);
}
/
@@ -98,7 +98,7 @@
btGeneric6DofConstraint joint = (btGeneric6DofConstraint*) jointId;
btVector3* vec = &btVector3();
jmeBulletUtil::convert(env, vector, vec);
}
/
@@ -126,13 +126,21 @@
btRigidBody bodyB = (btRigidBody*) bodyIdB;
btMatrix3x3* mtx1 = &btMatrix3x3();
btMatrix3x3* mtx2 = &btMatrix3x3();
+/* btTransform* transA = &btTransform(mtx1);
jmeBulletUtil::convert(env, pivotA, &transA->getOrigin());
jmeBulletUtil::convert(env, rotA, &transA->getBasis());
btTransform transB = &btTransform(*mtx2);
jmeBulletUtil::convert(env, pivotB, &transB->getOrigin());
jmeBulletUtil::convert(env, rotB, &transB->getBasis());
-
btGeneric6DofConstraint* joint = new btGeneric6DofConstraint(*bodyA, *bodyB, *transA, *transB, useLinearReferenceFrameA);<br />
+*/
-
btTransform transA;<br />
-
jmeBulletUtil::convert(env, pivotA, &transA.getOrigin());<br />
-
jmeBulletUtil::convert(env, rotA, &transA.getBasis());<br />
-
btTransform transB;<br />
-
jmeBulletUtil::convert(env, pivotB, &transB.getOrigin());<br />
-
jmeBulletUtil::convert(env, rotB, &transB.getBasis());<br />
+
-
btGeneric6DofConstraint* joint = new btGeneric6DofConstraint(*bodyA, *bodyB, transA, transB, useLinearReferenceFrameA);<br />
return (long)joint;
}
#ifdef __cplusplus
Index: com_jme3_bullet_joints_SixDofSpringJoint.cpp
— com_jme3_bullet_joints_SixDofSpringJoint.cpp Locally New
+++ com_jme3_bullet_joints_SixDofSpringJoint.cpp Locally New
@@ -0,0 +1,103 @@
+
+/**
-
-
/
+#include "com_jme3_bullet_joints_SixDofSpringJoint.h"
+#include "jmeBulletUtil.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/
-
- Class: com_jme3_bullet_joints_SixDofSpringJoint
-
-
- */
+JNIEXPORT void JNICALL Java_com_jme3_bullet_joints_SixDofSpringJoint_enableSpring
- (JNIEnv *env, jobject object, jlong jointId, jint index, jboolean onOff) {
- btGeneric6DofSpringConstraint* joint = (btGeneric6DofSpringConstraint*) jointId;
- joint -> enableSpring(index, onOff);
+}
+
+
+/*
-
- Class: com_jme3_bullet_joints_SixDofSpringJoint
-
-
- */
+JNIEXPORT void JNICALL Java_com_jme3_bullet_joints_SixDofSpringJoint_setStiffness
- (JNIEnv *env, jobject object, jlong jointId, jint index, jfloat stiffness) {
- btGeneric6DofSpringConstraint* joint = (btGeneric6DofSpringConstraint*) jointId;
- joint -> setStiffness(index, stiffness);
+}
+
+/*
-
- Class: com_jme3_bullet_joints_SixDofSpringJoint
-
-
- */
+JNIEXPORT void JNICALL Java_com_jme3_bullet_joints_SixDofSpringJoint_setDamping
- (JNIEnv *env, jobject object, jlong jointId, jint index, jfloat damping) {
- btGeneric6DofSpringConstraint* joint = (btGeneric6DofSpringConstraint*) jointId;
- joint -> setDamping(index, damping);
+}
+
+/*
-
- Class: com_jme3_bullet_joints_SixDofSpringJoint
-
- Method: setEquilibriumPoint
-
- */
+JNIEXPORT void JNICALL Java_com_jme3_bullet_joints_SixDofSpringJoint_setEquilibriumPoint__JIF
- (JNIEnv *env, jobject object, jlong jointId) {
- btGeneric6DofSpringConstraint* joint = (btGeneric6DofSpringConstraint*) jointId;
- joint -> setEquilibriumPoint();
+}
+
+/*
-
- Class: com_jme3_bullet_joints_SixDofSpringJoint
-
- Method: setEquilibriumPoint
-
- */
+JNIEXPORT void JNICALL Java_com_jme3_bullet_joints_SixDofSpringJoint_setEquilibriumPoint__JI
- (JNIEnv *env, jobject object, jlong jointId, jint index) {
- btGeneric6DofSpringConstraint* joint = (btGeneric6DofSpringConstraint*) jointId;
- joint -> setEquilibriumPoint(index);
+}
+
+
+
+
+/*
-
- Class: com_jme3_bullet_joints_SixDofSpringJoint
-
-
- Signature: (JJLcom/jme3/math/Vector3f;Lcom/jme3/math/Matrix3f;Lcom/jme3/math/Vector3f;Lcom/jme3/math/Matrix3f;Z)J
- */
+JNIEXPORT jlong JNICALL Java_com_jme3_bullet_joints_SixDofSpringJoint_createJoint
- (JNIEnv * env, jobject object, jlong bodyIdA, jlong bodyIdB, jobject pivotA, jobject rotA, jobject pivotB, jobject rotB, jboolean useLinearReferenceFrameA) {
-
jmeClasses::initJavaClasses(env);<br />
-
btRigidBody* bodyA = (btRigidBody*) bodyIdA;<br />
-
btRigidBody* bodyB = (btRigidBody*) bodyIdB;<br />
-
btMatrix3x3* mtx1 = &btMatrix3x3();<br />
-
btMatrix3x3* mtx2 = &btMatrix3x3();<br />
+/* btTransform* transA = &btTransform(*mtx1);
-
jmeBulletUtil::convert(env, pivotA, &transA->getOrigin());<br />
-
jmeBulletUtil::convert(env, rotA, &transA->getBasis());<br />
-
btTransform* transB = &btTransform(*mtx2);<br />
-
jmeBulletUtil::convert(env, pivotB, &transB->getOrigin());<br />
-
jmeBulletUtil::convert(env, rotB, &transB->getBasis());<br />
+*/
-
btTransform transA;<br />
-
jmeBulletUtil::convert(env, pivotA, &transA.getOrigin());<br />
-
jmeBulletUtil::convert(env, rotA, &transA.getBasis());<br />
-
btTransform transB;<br />
-
jmeBulletUtil::convert(env, pivotB, &transB.getOrigin());<br />
-
jmeBulletUtil::convert(env, rotB, &transB.getBasis());<br />
+
-
btGeneric6DofSpringConstraint* joint = new btGeneric6DofSpringConstraint(*bodyA, *bodyB, transA, transB, useLinearReferenceFrameA);<br />
-
return (long)joint;<br />
- }
+
+#ifdef __cplusplus
+}
+#endif
Index: com_jme3_bullet_joints_SixDofSpringJoint.h
— com_jme3_bullet_joints_SixDofSpringJoint.h Locally New
+++ com_jme3_bullet_joints_SixDofSpringJoint.h Locally New
@@ -0,0 +1,61 @@
+/* DO NOT EDIT THIS FILE - it is machine generated /
+#include <jni.h>
+/ Header for class com_jme3_bullet_joints_SixDofSpringJoint /
+
+#ifndef _Included_com_jme3_bullet_joints_SixDofSpringJoint
+#define _Included_com_jme3_bullet_joints_SixDofSpringJoint
+#ifdef __cplusplus
+extern "C" {
+#endif
+/
-
- Class: com_jme3_bullet_joints_SixDofSpringJoint
-
-
- */
+JNIEXPORT void JNICALL Java_com_jme3_bullet_joints_SixDofSpringJoint_enableSpring
- (JNIEnv , jobject, jlong, jint, jboolean);
+
+/
-
- Class: com_jme3_bullet_joints_SixDofSpringJoint
-
-
- */
+JNIEXPORT void JNICALL Java_com_jme3_bullet_joints_SixDofSpringJoint_setStiffness
- (JNIEnv , jobject, jlong, jint, jfloat);
+
+/
-
- Class: com_jme3_bullet_joints_SixDofSpringJoint
-
-
- */
+JNIEXPORT void JNICALL Java_com_jme3_bullet_joints_SixDofSpringJoint_setDamping
- (JNIEnv , jobject, jlong, jint, jfloat);
+
+/
-
- Class: com_jme3_bullet_joints_SixDofSpringJoint
-
- Method: setEquilibriumPoint
-
- */
+JNIEXPORT void JNICALL Java_com_jme3_bullet_joints_SixDofSpringJoint_setEquilibriumPoint__J
- (JNIEnv , jobject, jlong);
+
+/
-
- Class: com_jme3_bullet_joints_SixDofSpringJoint
-
- Method: setEquilibriumPoint
-
- */
+JNIEXPORT void JNICALL Java_com_jme3_bullet_joints_SixDofSpringJoint_setEquilibriumPoint__JI
- (JNIEnv , jobject, jlong, jint);
+
+/
-
- Class: com_jme3_bullet_joints_SixDofSpringJoint
-
-
- Signature: (JJLcom/jme3/math/Vector3f;Lcom/jme3/math/Matrix3f;Lcom/jme3/math/Vector3f;Lcom/jme3/math/Matrix3f;Z)J
- */
+JNIEXPORT jlong JNICALL Java_com_jme3_bullet_joints_SixDofSpringJoint_createJoint
- (JNIEnv , jobject, jlong, jlong, jobject, jobject, jobject, jobject, jboolean);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
Index: com_jme3_bullet_objects_PhysicsRigidBody.cpp
— com_jme3_bullet_objects_PhysicsRigidBody.cpp Base (BASE)
+++ com_jme3_bullet_objects_PhysicsRigidBody.cpp Locally Modified (Based On LOCAL)
@@ -328,7 +328,7 @@
JNIEXPORT void JNICALL Java_com_jme3_bullet_objects_PhysicsRigidBody_setAngularDamping
(JNIEnv env, jobject object, jlong bodyId, jfloat value) {
btRigidBody body = (btRigidBody) bodyId;
}
/
@@ -556,7 +556,7 @@
JNIEXPORT void JNICALL Java_com_jme3_bullet_objects_PhysicsRigidBody_setLinearSleepingThreshold
(JNIEnv env, jobject object, jlong bodyId, jfloat value) {
btRigidBody body = (btRigidBody) bodyId;
}
/
@@ -567,7 +567,7 @@
JNIEXPORT void JNICALL Java_com_jme3_bullet_objects_PhysicsRigidBody_setAngularSleepingThreshold
(JNIEnv env, jobject object, jlong bodyId, jfloat value) {
btRigidBody body = (btRigidBody) bodyId;
}
/*
Index: jmeMotionState.cpp
— jmeMotionState.cpp Base (BASE)
+++ jmeMotionState.cpp Locally Modified (Based On LOCAL)
@@ -38,6 +38,7 @@
jmeMotionState::jmeMotionState() {
trans = new btTransform();
- trans -> setIdentity();
worldTransform = *trans;
dirty = true;
}
[/patch]