From ef25a513437196a3ea9ee45e6e03565eb86067d2 Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Thu, 28 Jun 2018 16:05:26 -0600 Subject: Simplified makefile Made makefile much simpiler, added option to build dynamically with DEBUG=true --- src/client/lua_api/phys/bphysbuffer.cpp | 193 ++++++++------------------------ src/client/lua_api/phys/bphysbuffer.hpp | 2 +- src/client/lua_api/phys/bphysmodel.hpp | 9 +- src/client/lua_api/phys/butil.cpp | 26 ----- src/client/lua_api/phys/butil.hpp | 9 -- src/client/lua_api/phys/cbphysbox.cpp | 3 +- 6 files changed, 53 insertions(+), 189 deletions(-) delete mode 100644 src/client/lua_api/phys/butil.cpp delete mode 100644 src/client/lua_api/phys/butil.hpp (limited to 'src/client/lua_api/phys') diff --git a/src/client/lua_api/phys/bphysbuffer.cpp b/src/client/lua_api/phys/bphysbuffer.cpp index aa2833a..a8f7302 100644 --- a/src/client/lua_api/phys/bphysbuffer.cpp +++ b/src/client/lua_api/phys/bphysbuffer.cpp @@ -12,10 +12,11 @@ extern "C" { } #include #include -#include "../gameparts.hpp" -#include "bphysbox.hpp" +#include +#include #include "bphysmodel.hpp" #include "../scene/igeneric.hpp" +#include using namespace irr; using namespace scene; @@ -49,40 +50,14 @@ static int newbphysmodel(lua_State* L){ } //The model for the mesh //const char* modelpath = luaL_optstring(L,1,"error"); - - //Find the vector position - lua_pushnumber(L,1); - lua_gettable(L,-4); - float x = lua_tonumber(L,-1); - lua_pop(L,1); - - lua_pushnumber(L,2); - lua_gettable(L,-4); - float y = lua_tonumber(L,-1); - lua_pop(L,1); - - lua_pushnumber(L,3); - lua_gettable(L,-4); - float z = lua_tonumber(L,-1); - lua_pop(L,1); + + double x,y,z; + popvector3d(L,&x,&y,&z); printf("Found position for phys model: %f %f %f\n",x,y,z); //Find the vector scale - lua_pushnumber(L,1); - lua_gettable(L,-3); - float sx = lua_tonumber(L,-1); - lua_pop(L,1); - - lua_pushnumber(L,2); - lua_gettable(L,-3); - float sy = lua_tonumber(L,-1); - lua_pop(L,1); - - lua_pushnumber(L,3); - lua_gettable(L,-3); - float sz = lua_tonumber(L,-1); - lua_pop(L,1); - + double sx,sy,sz; + popvector3d(L,&sx,&sy,&sz); printf("Found scale for phys model: %f %f %f\n",sx,sy,sz); //find the model path @@ -90,41 +65,41 @@ static int newbphysmodel(lua_State* L){ printf("I want to use model %s\n", mpath); - ISceneManager* smgr = device->getSceneManager(); - IMesh* amesh = smgr->getMesh(mpath); - IMeshBuffer* bf = amesh->getMeshBuffer(0); - u32 ni = bf->getIndexCount(); - - btTriangleMesh* trimesh = new btTriangleMesh(); - for(u32 i = 0; i < ni; i+=3){ - vector3df p1 = bf->getPosition(i + 0); - vector3df p2 = bf->getPosition(i + 1); - vector3df p3 = bf->getPosition(i + 2); - btVector3 b1 = btVector3(p1.X,p1.Y,p1.Z); - btVector3 b2 = btVector3(p2.X,p2.Y,p2.Z); - btVector3 b3 = btVector3(p3.X,p3.Y,p3.Z); - trimesh->addTriangle(b1,b2,b3); - } - btCollisionShape* shape = new btConvexTriangleMeshShape(trimesh,true); + ISceneManager* smgr = device->getSceneManager(); + IMesh* amesh = smgr->getMesh(mpath); + IMeshBuffer* bf = amesh->getMeshBuffer(0); + u32 ni = bf->getIndexCount(); + + btTriangleMesh* trimesh = new btTriangleMesh(); + for(u32 i = 0; i < ni; i+=3){ + vector3df p1 = bf->getPosition(i + 0); + vector3df p2 = bf->getPosition(i + 1); + vector3df p3 = bf->getPosition(i + 2); + btVector3 b1 = btVector3(p1.X,p1.Y,p1.Z); + btVector3 b2 = btVector3(p2.X,p2.Y,p2.Z); + btVector3 b3 = btVector3(p3.X,p3.Y,p3.Z); + trimesh->addTriangle(b1,b2,b3); + } + btCollisionShape* shape = new btConvexTriangleMeshShape(trimesh,true); core::vector3df scale = core::vector3df(sx,sy,sz); btVector3 pos = btVector3(x,y,z); core::vector3df ipos = core::vector3df(x,y,z); - shape->setLocalScaling(btVector3(sx,sy,sz)); + shape->setLocalScaling(btVector3(sx,sy,sz)); //Find the mass float mass = luaL_optint(L,4,0); - printf("Found mass for physbox:%f\n",mass); + printf("Found mass for physbox:%f\n",mass); // Create an Irrlicht cube scene::ISceneNode* Node = smgr->addMeshSceneNode( - amesh, - (ISceneNode*)0, - (s32)-1, - ipos, - vector3df(0,0,0), - scale - ); + amesh, + (ISceneNode*)0, + (s32)-1, + ipos, + vector3df(0,0,0), + scale + ); //Node->setScale(scale); printf("Added cube scene node and set it's scale\n"); @@ -199,108 +174,30 @@ static int newbphysmodel(lua_State* L){ return 1; } -static int delbphysmodel(lua_State* L){ - LBPhysNode* pnode = checkisbphysmodel(L,-1); - - //delete pnode->r->getMotionState(); - delete pnode->r->getCollisionShape(); - delete pnode->r; - - return 0; -} -static int bphyssetpos(lua_State *L){ - LBPhysNode* i = checkisbphysmodel(L,1); - btTransform bt = i->r->getWorldTransform(); - - lua_pushnumber(L,1); - lua_gettable(L,-2); - f32 x = (f32)lua_tonumber(L,-1); - lua_pop(L,1); - - lua_pushnumber(L,2); - lua_gettable(L,-2); - f32 y = (f32)lua_tonumber(L,-1); - lua_pop(L,1); - - lua_pushnumber(L,3); - lua_gettable(L,-2); - f32 z = (f32)lua_tonumber(L,-1); - lua_pop(L,1); - - btVector3 to = btVector3(x,y,z); - printf("managed to set phys origin\n"); - bt.setOrigin(to); - printf("managed to set phys transform\n"); - i->r->setWorldTransform(bt); - i->r->activate(); - printf("sucess! returning from call\n"); - return 0; -} - -static int bphysgetpos(lua_State *L){ - LBPhysNode* i = checkisbphysmodel(L,1); - btTransform bt = i->r->getWorldTransform(); - btVector3 bv = bt.getOrigin(); - - lua_createtable(L,3,0); - - lua_pushnumber(L,1); - lua_pushnumber(L,bv.x()); - lua_settable(L,-3); - - lua_pushnumber(L,2); - lua_pushnumber(L,bv.y()); - lua_settable(L,-3); - - lua_pushnumber(L,3); - lua_pushnumber(L,bv.z()); - lua_settable(L,-3); - - return 1; -} - -static const luaL_reg bphysmodel_f[] = { - {"new", newbphysbuffer}, +static const luaL_reg bphysbuffer_f[] = { + //{"new", newbphysmodel}, // {"gethandeler", guigethandeler}, // {"sethandeler", guisethandeler}, {0,0}, }; -static const luaL_reg bphysmodel_m[] = { - {"setmaterial", iscenesetmaterial}, - {"getpos", bphysgetpos}, - {"setpos", bphyssetpos}, +static const luaL_reg bphysbuffer_m[] = { + //{"setmaterial", iscenesetmaterial}, + //{"getpos", bphysgetpos}, + //{"setpos", bphyssetpos}, // {"settext", setiguitext}, // {"remove", removeiguielement}, {0, 0}, }; -int bphysmodel_register(lua_State* L, IrrlichtDevice* d){ +void bphysbuffer_register(lua_State* L, IrrlichtDevice* d){ device = d; - //printf("bphysmodel registered\n"); - - luaL_newmetatable(L, "phys.physmodel"); - - luaL_register(L,"physmodel",bphysmodel_f); - - lua_pushstring(L,"__index"); - lua_pushstring(L,"gethandeler"); - lua_gettable(L,-3); - lua_settable(L,-4); - - lua_pushstring(L,"__newindex"); - lua_pushstring(L,"sethandeler"); - lua_gettable(L,-3); - lua_settable(L,-4); - - lua_pushstring(L,"__gc"); - lua_pushcfunction(L,delbphysmodel); - lua_settable(L,-4); - - luaL_register(L, NULL, bphysmodel_m); - - return 1; + luaL_newmetatable(L, "phys.physbuffer");//{m_physbuffer} + lua_newtable(L);//{m_physbuffer},{} + luaL_register(L,"physbuffer",bphysbuffer_m);//{m_physbuffer},{physbuffer} + lua_setfield(L,-2,"__index");//{m_physbuffer} + lua_pop(L,1); } diff --git a/src/client/lua_api/phys/bphysbuffer.hpp b/src/client/lua_api/phys/bphysbuffer.hpp index a59c451..cfbf549 100644 --- a/src/client/lua_api/phys/bphysbuffer.hpp +++ b/src/client/lua_api/phys/bphysbuffer.hpp @@ -8,4 +8,4 @@ extern "C" { } #include -int bphysmodel_register(lua_State* L, irr::IrrlichtDevice* d); +void bphysmodel_register(lua_State* L); diff --git a/src/client/lua_api/phys/bphysmodel.hpp b/src/client/lua_api/phys/bphysmodel.hpp index a59c451..1c0fbac 100644 --- a/src/client/lua_api/phys/bphysmodel.hpp +++ b/src/client/lua_api/phys/bphysmodel.hpp @@ -1,11 +1,12 @@ - +#ifndef _BPHYSMODEL_HPP_ #include #include extern "C" { - #include - #include - #include + #include + #include + #include } #include int bphysmodel_register(lua_State* L, irr::IrrlichtDevice* d); +#endif diff --git a/src/client/lua_api/phys/butil.cpp b/src/client/lua_api/phys/butil.cpp deleted file mode 100644 index 6319688..0000000 --- a/src/client/lua_api/phys/butil.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include - -extern "C" { - #include - #include - #include -} - -#include - -#include "butil.hpp" - -btVector3 lua_popbtvector(lua_State* L,int pos){ - f32 p[3]; - - for(int i = 0; i < 3; i++){ - lua_pushnumber(L,i+1); - lua_gettable(L,pos); - p[i] = (f32) lua_tonumber(L,-1); - lua_pop(L,1); - } - - printf("Found vector (%f,%f,%f)\n",p[0],p[1],p[2]); - - return btVector3(p[0],p[1],p[2]); -} diff --git a/src/client/lua_api/phys/butil.hpp b/src/client/lua_api/phys/butil.hpp deleted file mode 100644 index c288b97..0000000 --- a/src/client/lua_api/phys/butil.hpp +++ /dev/null @@ -1,9 +0,0 @@ -extern "C" { - #include - #include - #include -} - -#include - -btVector3 lua_popbtvector(lua_State* L,int pos); diff --git a/src/client/lua_api/phys/cbphysbox.cpp b/src/client/lua_api/phys/cbphysbox.cpp index 6a3d64e..2935d21 100644 --- a/src/client/lua_api/phys/cbphysbox.cpp +++ b/src/client/lua_api/phys/cbphysbox.cpp @@ -12,8 +12,9 @@ extern "C" { #include #include "cbphysbox.hpp" #include "../scene/imesh.hpp" -#include "../../../shared/lua_api/phys/bphysbox.hpp" +#include #include "../scene/igeneric.hpp" +#include using namespace irr; using namespace scene; -- cgit v1.2.3-70-g09d2