aboutsummaryrefslogtreecommitdiff
path: root/src/shared/lua_api/phys/bphysgeneric.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/lua_api/phys/bphysgeneric.cpp')
-rw-r--r--src/shared/lua_api/phys/bphysgeneric.cpp20
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}
};