aboutsummaryrefslogtreecommitdiff
path: root/src/shared/lua_api/phys/bhingeconstraint.cpp
diff options
context:
space:
mode:
authorAlexander Pickering <alex@cogarr.net>2018-11-07 14:49:35 -0500
committerAlexander Pickering <alex@cogarr.net>2018-11-07 14:50:58 -0500
commit2009501214f3c2e3f8d8b1a06432afdf39276bd5 (patch)
treec6c091a4b6f3f714657930cda4fd485ee1dd3d95 /src/shared/lua_api/phys/bhingeconstraint.cpp
parent112517494847f0c86f58544cbf4c35c9b7712ab1 (diff)
downloadbrokengine-2009501214f3c2e3f8d8b1a06432afdf39276bd5.tar.gz
brokengine-2009501214f3c2e3f8d8b1a06432afdf39276bd5.tar.bz2
brokengine-2009501214f3c2e3f8d8b1a06432afdf39276bd5.zip
Added Kinematic Character Controllers
Diffstat (limited to 'src/shared/lua_api/phys/bhingeconstraint.cpp')
-rw-r--r--src/shared/lua_api/phys/bhingeconstraint.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/shared/lua_api/phys/bhingeconstraint.cpp b/src/shared/lua_api/phys/bhingeconstraint.cpp
index 168d1b6..ab6fb50 100644
--- a/src/shared/lua_api/phys/bhingeconstraint.cpp
+++ b/src/shared/lua_api/phys/bhingeconstraint.cpp
@@ -7,6 +7,7 @@ extern "C" {
#include <lauxlib.h>
#include <lualib.h>
}
+#include <shared/lua_api/common.hpp>
#include <Irrlicht.h>
#include <btBulletDynamicsCommon.h>
#include <shared/lua_api/phys/bhingeconstraint.hpp>
@@ -19,7 +20,23 @@ using namespace video;
extern btDiscreteDynamicsWorld* World;
extern std::list<btRigidBody*> Objects;
+//newhingeconstraint(phys1,v3 axis, refrencephys1)
int newbhingeconstraint(lua_State *L){
+ bool phys1 = lua_toboolean(L,-1) == 1;
+ lua_pop(L,1);
+
+ double x,y,z;
+ popvector3d(L,&x,&y,&z);
+
+ lua_getfield(L,-1,"rigidbody");
+ btRigidBody *p1 = (btRigidBody*)lua_touserdata(L,-1);
+ btTransform frame = p1->getCenterOfMassTransform();
+ frame.setRotation(btQuaternion(x,y,z,0));
+ lua_pop(L,2);
+
+ btHingeConstraint(*p1,frame,phys1);
+ printf("Done makeing new hinge constraint\n");
+
return 0;
}