From ecfd36d79eb42a8b83f5984e0d5c1d155498a845 Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Sat, 29 Sep 2018 16:14:35 -0400 Subject: Added getvelocity() and setvelocity() Added methods * physgeneric:getvelocity() :: vector3 * physgeneric:setvelocity(vector3) --- src/client/lua_api/phys/bphysgeneric.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/client/lua_api/phys/bphysgeneric.cpp') diff --git a/src/client/lua_api/phys/bphysgeneric.cpp b/src/client/lua_api/phys/bphysgeneric.cpp index 0d882d6..e4e8ab0 100644 --- a/src/client/lua_api/phys/bphysgeneric.cpp +++ b/src/client/lua_api/phys/bphysgeneric.cpp @@ -74,6 +74,32 @@ int getlineardamping(lua_State *L){ return 1; } +//rigidbody:getvelocity() +int getvelocity(lua_State *L){ + btVector3 vel; + lua_getfield(L,-1,"rigidbody"); + btRigidBody *r = (btRigidBody*)lua_touserdata(L,-1); + + vel = r->getLinearVelocity(); + pushvector3d(L,(double)vel.x(),(double)vel.y(),(double)vel.z()); + + return 1; +} + +//rigidbody:setvelocity({x,y,z}) +int setvelocity(lua_State *L){ + double x,y,z; + popvector3d(L,&x,&y,&z); + btVector3 newvel = btVector3(x,y,z); + + lua_getfield(L,-1,"rigidbody"); + btRigidBody *r = (btRigidBody*)lua_touserdata(L,-1); + lua_pop(L,2); + + r->setLinearVelocity(newvel); + + return 0; +} //rigidbody:getadamping() int getangulardamping(lua_State *L){ -- cgit v1.2.3-70-g09d2