diff options
Diffstat (limited to 'src/shared/lua_api/phys/bphysgeneric.cpp')
| -rw-r--r-- | src/shared/lua_api/phys/bphysgeneric.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/shared/lua_api/phys/bphysgeneric.cpp b/src/shared/lua_api/phys/bphysgeneric.cpp index 718ffed..4500ce0 100644 --- a/src/shared/lua_api/phys/bphysgeneric.cpp +++ b/src/shared/lua_api/phys/bphysgeneric.cpp @@ -246,6 +246,25 @@ int applyimpulse(lua_State *L){ return 0; } +//rigidbody:setrotation({pitch,yaw,roll}) +int setrotation(lua_State *L){ + int nargs = lua_gettop(L); + double pitch,yaw,roll; + if(nargs != 2){ + lua_pushstring(L,"setrotation() expected 2 arguments (r :: rigidbody, eulerangle :: vector3)"); + lua_error(L); + } + popvector3d(L,&pitch,&yaw,&roll); + btRigidBody *r = popRigidBody(L); + btTransform tr; + btQuaternion quat; + quat.setEuler(yaw,pitch,roll); + tr.setRotation(quat); + r->setCenterOfMassTransform(tr); + + return 0; +} + /* @@ -290,6 +309,7 @@ extern const luaL_reg brigidbody_m[] = { {"setvelocity", setvelocity}, {"setangfactor", setangfactor}, {"setflags", setflags}, + {"setrotation", setrotation}, //{"testcontact", testcontact}, {NULL, NULL} }; |
