Body:isKinematic; Body:setKinematic;

This commit is contained in:
bjorn 2017-05-15 23:15:50 -06:00
parent 8a0f37a0ae
commit f672fe77cd
3 changed files with 29 additions and 0 deletions

View File

@ -140,6 +140,19 @@ int l_lovrBodyApplyTorque(lua_State* L) {
return 0;
}
int l_lovrBodyIsKinematic(lua_State* L) {
Body* body = luax_checktype(L, 1, Body);
lua_pushboolean(L, lovrBodyIsKinematic(body));
return 1;
}
int l_lovrBodySetKinematic(lua_State* L) {
Body* body = luax_checktype(L, 1, Body);
int kinematic = lua_toboolean(L, 2);
lovrBodySetKinematic(body, kinematic);
return 0;
}
const luaL_Reg lovrBody[] = {
{ "getPosition", l_lovrBodyGetPosition },
{ "setPosition", l_lovrBodySetPosition },
@ -155,5 +168,7 @@ const luaL_Reg lovrBody[] = {
{ "setAngularDamping", l_lovrBodySetAngularDamping },
{ "applyForce", l_lovrBodyApplyForce },
{ "applyTorque", l_lovrBodyApplyForce },
{ "isKinematic", l_lovrBodyIsKinematic },
{ "setKinematic", l_lovrBodySetKinematic },
{ NULL, NULL }
};

View File

@ -172,3 +172,15 @@ void lovrBodyApplyForceAtPosition(Body* body, float x, float y, float z, float c
void lovrBodyApplyTorque(Body* body, float x, float y, float z) {
dBodyAddTorque(body->id, x, y, z);
}
int lovrBodyIsKinematic(Body* body) {
return dBodyIsKinematic(body->id);
}
void lovrBodySetKinematic(Body* body, int kinematic) {
if (kinematic) {
dBodySetKinematic(body->id);
} else {
dBodySetDynamic(body->id);
}
}

View File

@ -44,3 +44,5 @@ void lovrBodySetAngularDamping(Body* body, float damping, float threshold);
void lovrBodyApplyForce(Body* body, float x, float y, float z);
void lovrBodyApplyForceAtPosition(Body* body, float x, float y, float z, float cx, float cy, float cz);
void lovrBodyApplyTorque(Body* body, float x, float y, float z);
int lovrBodyIsKinematic(Body* body);
void lovrBodySetKinematic(Body* body, int kinematic);