CollisionShape: add isNonMoving() and test buildscript

fix-openal-soft-deadlink
sgold 5 years ago
parent 4ccdd7aae0
commit 3482904c76
  1. 19
      jme3-bullet-native/src/native/cpp/com_jme3_bullet_collision_shapes_CollisionShape.cpp
  2. 21
      jme3-bullet/src/main/java/com/jme3/bullet/collision/shapes/CollisionShape.java

@ -105,6 +105,25 @@ extern "C" {
} }
delete(shape); delete(shape);
} }
/*
* Class: com_jme3_bullet_collision_shapes_CollisionShape
* Method: isNonMoving
* Signature: (J)Z
*/
JNIEXPORT jboolean JNICALL Java_com_jme3_bullet_collision_shapes_CollisionShape_isNonMoving
(JNIEnv *env, jobject object, jlong shapeId) {
btCollisionShape *pShape
= reinterpret_cast<btCollisionShape *> (shapeId);
if (pShape == NULL) {
jclass newExc = env->FindClass("java/lang/NullPointerException");
env->ThrowNew(newExc, "The native object does not exist.");
return false;
}
return pShape->isNonMoving();
}
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

@ -87,7 +87,7 @@ public abstract class CollisionShape implements Savable {
//// objectId.calculateLocalInertia(mass, vector); //// objectId.calculateLocalInertia(mass, vector);
//// } //// }
// } // }
// //
// private native void calculateLocalInertia(long objectId, long shapeId, float mass); // private native void calculateLocalInertia(long objectId, long shapeId, float mass);
/** /**
@ -129,6 +129,19 @@ public abstract class CollisionShape implements Savable {
return scale; return scale;
} }
/**
* Test whether this shape can be applied to a dynamic rigid body. The only
* non-moving shapes are the heightfield, mesh, and plane shapes.
*
* @return true if non-moving, false otherwise
*/
public boolean isNonMoving() {
boolean result = isNonMoving(objectId);
return result;
}
native private boolean isNonMoving(long objectId);
/** /**
* Read the collision margin for this shape. * Read the collision margin for this shape.
* *
@ -137,7 +150,7 @@ public abstract class CollisionShape implements Savable {
public float getMargin() { public float getMargin() {
return getMargin(objectId); return getMargin(objectId);
} }
private native float getMargin(long objectId); private native float getMargin(long objectId);
/** /**
@ -177,9 +190,9 @@ public abstract class CollisionShape implements Savable {
setMargin(objectId, margin); setMargin(objectId, margin);
this.margin = margin; this.margin = margin;
} }
private native void setLocalScaling(long obectId, Vector3f scale); private native void setLocalScaling(long obectId, Vector3f scale);
private native void setMargin(long objectId, float margin); private native void setMargin(long objectId, float margin);
/** /**

Loading…
Cancel
Save