CollisionShape: add isNonMoving() and test buildscript

This commit is contained in:
sgold 2019-09-18 19:56:16 -07:00
parent 4ccdd7aae0
commit 3482904c76
2 changed files with 36 additions and 4 deletions

View File

@ -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

View File

@ -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.
* *