mirror of https://github.com/bjornbytes/lovr.git
Body:applyForce; Body:applyTorque;
This commit is contained in:
parent
18b9c8cdae
commit
8a0f37a0ae
|
@ -113,6 +113,33 @@ int l_lovrBodySetAngularDamping(lua_State* L) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int l_lovrBodyApplyForce(lua_State* L) {
|
||||||
|
Body* body = luax_checktype(L, 1, Body);
|
||||||
|
float x = luaL_checknumber(L, 2);
|
||||||
|
float y = luaL_checknumber(L, 3);
|
||||||
|
float z = luaL_checknumber(L, 4);
|
||||||
|
|
||||||
|
if (lua_gettop(L) > 4) {
|
||||||
|
float cx = luaL_checknumber(L, 5);
|
||||||
|
float cy = luaL_checknumber(L, 6);
|
||||||
|
float cz = luaL_checknumber(L, 7);
|
||||||
|
lovrBodyApplyForceAtPosition(body, x, y, z, cx, cy, cz);
|
||||||
|
} else {
|
||||||
|
lovrBodyApplyForce(body, x, y, z);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int l_lovrBodyApplyTorque(lua_State* L) {
|
||||||
|
Body* body = luax_checktype(L, 1, Body);
|
||||||
|
float x = luaL_checknumber(L, 2);
|
||||||
|
float y = luaL_checknumber(L, 3);
|
||||||
|
float z = luaL_checknumber(L, 4);
|
||||||
|
lovrBodyApplyTorque(body, x, y, z);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
const luaL_Reg lovrBody[] = {
|
const luaL_Reg lovrBody[] = {
|
||||||
{ "getPosition", l_lovrBodyGetPosition },
|
{ "getPosition", l_lovrBodyGetPosition },
|
||||||
{ "setPosition", l_lovrBodySetPosition },
|
{ "setPosition", l_lovrBodySetPosition },
|
||||||
|
@ -126,5 +153,7 @@ const luaL_Reg lovrBody[] = {
|
||||||
{ "setLinearDamping", l_lovrBodySetLinearDamping },
|
{ "setLinearDamping", l_lovrBodySetLinearDamping },
|
||||||
{ "getAngularDamping", l_lovrBodyGetAngularDamping },
|
{ "getAngularDamping", l_lovrBodyGetAngularDamping },
|
||||||
{ "setAngularDamping", l_lovrBodySetAngularDamping },
|
{ "setAngularDamping", l_lovrBodySetAngularDamping },
|
||||||
|
{ "applyForce", l_lovrBodyApplyForce },
|
||||||
|
{ "applyTorque", l_lovrBodyApplyForce },
|
||||||
{ NULL, NULL }
|
{ NULL, NULL }
|
||||||
};
|
};
|
||||||
|
|
|
@ -160,3 +160,15 @@ void lovrBodySetAngularDamping(Body* body, float damping, float threshold) {
|
||||||
dBodySetAngularDamping(body->id, damping);
|
dBodySetAngularDamping(body->id, damping);
|
||||||
dBodySetAngularDampingThreshold(body->id, threshold);
|
dBodySetAngularDampingThreshold(body->id, threshold);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void lovrBodyApplyForce(Body* body, float x, float y, float z) {
|
||||||
|
dBodyAddForce(body->id, x, y, z);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lovrBodyApplyForceAtPosition(Body* body, float x, float y, float z, float cx, float cy, float cz) {
|
||||||
|
dBodyAddForceAtPos(body->id, x, y, z, cx, cy, cz);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lovrBodyApplyTorque(Body* body, float x, float y, float z) {
|
||||||
|
dBodyAddTorque(body->id, x, y, z);
|
||||||
|
}
|
||||||
|
|
|
@ -41,3 +41,6 @@ void lovrBodyGetLinearDamping(Body* body, float* damping, float* threshold);
|
||||||
void lovrBodySetLinearDamping(Body* body, float damping, float threshold);
|
void lovrBodySetLinearDamping(Body* body, float damping, float threshold);
|
||||||
void lovrBodyGetAngularDamping(Body* body, float* damping, float* threshold);
|
void lovrBodyGetAngularDamping(Body* body, float* damping, float* threshold);
|
||||||
void lovrBodySetAngularDamping(Body* body, float damping, float threshold);
|
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);
|
||||||
|
|
Loading…
Reference in New Issue