#include "Base.h" #include "ScriptController.h" #include "lua_Mesh.h" #include "Base.h" #include "Effect.h" #include "Game.h" #include "Material.h" #include "Mesh.h" #include "MeshPart.h" #include "Model.h" #include "Ref.h" #include "lua_MeshIndexFormat.h" #include "lua_MeshPrimitiveType.h" namespace gameplay { void luaRegister_Mesh() { ScriptController* sc = ScriptController::getInstance(); const luaL_Reg lua_members[] = { {"addPart", lua_Mesh_addPart}, {"addRef", lua_Mesh_addRef}, {"getBoundingBox", lua_Mesh_getBoundingBox}, {"getBoundingSphere", lua_Mesh_getBoundingSphere}, {"getPart", lua_Mesh_getPart}, {"getPartCount", lua_Mesh_getPartCount}, {"getPrimitiveType", lua_Mesh_getPrimitiveType}, {"getRefCount", lua_Mesh_getRefCount}, {"getUrl", lua_Mesh_getUrl}, {"getVertexBuffer", lua_Mesh_getVertexBuffer}, {"getVertexCount", lua_Mesh_getVertexCount}, {"getVertexFormat", lua_Mesh_getVertexFormat}, {"getVertexSize", lua_Mesh_getVertexSize}, {"isDynamic", lua_Mesh_isDynamic}, {"release", lua_Mesh_release}, {"setBoundingBox", lua_Mesh_setBoundingBox}, {"setBoundingSphere", lua_Mesh_setBoundingSphere}, {"setPrimitiveType", lua_Mesh_setPrimitiveType}, {"setVertexData", lua_Mesh_setVertexData}, {NULL, NULL} }; const luaL_Reg lua_statics[] = { {"createBoundingBox", lua_Mesh_static_createBoundingBox}, {"createLines", lua_Mesh_static_createLines}, {"createMesh", lua_Mesh_static_createMesh}, {"createQuad", lua_Mesh_static_createQuad}, {"createQuadFullscreen", lua_Mesh_static_createQuadFullscreen}, {NULL, NULL} }; std::vector scopePath; sc->registerClass("Mesh", lua_members, NULL, lua_Mesh__gc, lua_statics, scopePath); } static Mesh* getInstance(lua_State* state) { void* userdata = luaL_checkudata(state, 1, "Mesh"); luaL_argcheck(state, userdata != NULL, 1, "'Mesh' expected."); return (Mesh*)((ScriptController::LuaObject*)userdata)->instance; } int lua_Mesh__gc(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 1: { if ((lua_type(state, 1) == LUA_TUSERDATA)) { void* userdata = luaL_checkudata(state, 1, "Mesh"); luaL_argcheck(state, userdata != NULL, 1, "'Mesh' expected."); ScriptController::LuaObject* object = (ScriptController::LuaObject*)userdata; if (object->owns) { Mesh* instance = (Mesh*)object->instance; SAFE_RELEASE(instance); } return 0; } else { lua_pushstring(state, "lua_Mesh__gc - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 1)."); lua_error(state); break; } } return 0; } int lua_Mesh_addPart(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 4: { if ((lua_type(state, 1) == LUA_TUSERDATA) && (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL) && (lua_type(state, 3) == LUA_TSTRING || lua_type(state, 3) == LUA_TNIL) && lua_type(state, 4) == LUA_TNUMBER) { // Get parameter 1 off the stack. Mesh::PrimitiveType param1 = (Mesh::PrimitiveType)lua_enumFromString_MeshPrimitiveType(luaL_checkstring(state, 2)); // Get parameter 2 off the stack. Mesh::IndexFormat param2 = (Mesh::IndexFormat)lua_enumFromString_MeshIndexFormat(luaL_checkstring(state, 3)); // Get parameter 3 off the stack. unsigned int param3 = (unsigned int)luaL_checkunsigned(state, 4); Mesh* instance = getInstance(state); void* returnPtr = (void*)instance->addPart(param1, param2, param3); if (returnPtr) { ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject)); object->instance = returnPtr; object->owns = false; luaL_getmetatable(state, "MeshPart"); lua_setmetatable(state, -2); } else { lua_pushnil(state); } return 1; } else { lua_pushstring(state, "lua_Mesh_addPart - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } case 5: { if ((lua_type(state, 1) == LUA_TUSERDATA) && (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL) && (lua_type(state, 3) == LUA_TSTRING || lua_type(state, 3) == LUA_TNIL) && lua_type(state, 4) == LUA_TNUMBER && lua_type(state, 5) == LUA_TBOOLEAN) { // Get parameter 1 off the stack. Mesh::PrimitiveType param1 = (Mesh::PrimitiveType)lua_enumFromString_MeshPrimitiveType(luaL_checkstring(state, 2)); // Get parameter 2 off the stack. Mesh::IndexFormat param2 = (Mesh::IndexFormat)lua_enumFromString_MeshIndexFormat(luaL_checkstring(state, 3)); // Get parameter 3 off the stack. unsigned int param3 = (unsigned int)luaL_checkunsigned(state, 4); // Get parameter 4 off the stack. bool param4 = ScriptController::luaCheckBool(state, 5); Mesh* instance = getInstance(state); void* returnPtr = (void*)instance->addPart(param1, param2, param3, param4); if (returnPtr) { ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject)); object->instance = returnPtr; object->owns = false; luaL_getmetatable(state, "MeshPart"); lua_setmetatable(state, -2); } else { lua_pushnil(state); } return 1; } else { lua_pushstring(state, "lua_Mesh_addPart - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 4 or 5)."); lua_error(state); break; } } return 0; } int lua_Mesh_addRef(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 1: { if ((lua_type(state, 1) == LUA_TUSERDATA)) { Mesh* instance = getInstance(state); instance->addRef(); return 0; } else { lua_pushstring(state, "lua_Mesh_addRef - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 1)."); lua_error(state); break; } } return 0; } int lua_Mesh_getBoundingBox(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 1: { if ((lua_type(state, 1) == LUA_TUSERDATA)) { Mesh* instance = getInstance(state); void* returnPtr = (void*)&(instance->getBoundingBox()); if (returnPtr) { ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject)); object->instance = returnPtr; object->owns = false; luaL_getmetatable(state, "BoundingBox"); lua_setmetatable(state, -2); } else { lua_pushnil(state); } return 1; } else { lua_pushstring(state, "lua_Mesh_getBoundingBox - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 1)."); lua_error(state); break; } } return 0; } int lua_Mesh_getBoundingSphere(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 1: { if ((lua_type(state, 1) == LUA_TUSERDATA)) { Mesh* instance = getInstance(state); void* returnPtr = (void*)&(instance->getBoundingSphere()); if (returnPtr) { ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject)); object->instance = returnPtr; object->owns = false; luaL_getmetatable(state, "BoundingSphere"); lua_setmetatable(state, -2); } else { lua_pushnil(state); } return 1; } else { lua_pushstring(state, "lua_Mesh_getBoundingSphere - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 1)."); lua_error(state); break; } } return 0; } int lua_Mesh_getPart(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 2: { if ((lua_type(state, 1) == LUA_TUSERDATA) && lua_type(state, 2) == LUA_TNUMBER) { // Get parameter 1 off the stack. unsigned int param1 = (unsigned int)luaL_checkunsigned(state, 2); Mesh* instance = getInstance(state); void* returnPtr = (void*)instance->getPart(param1); if (returnPtr) { ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject)); object->instance = returnPtr; object->owns = false; luaL_getmetatable(state, "MeshPart"); lua_setmetatable(state, -2); } else { lua_pushnil(state); } return 1; } else { lua_pushstring(state, "lua_Mesh_getPart - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 2)."); lua_error(state); break; } } return 0; } int lua_Mesh_getPartCount(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 1: { if ((lua_type(state, 1) == LUA_TUSERDATA)) { Mesh* instance = getInstance(state); unsigned int result = instance->getPartCount(); // Push the return value onto the stack. lua_pushunsigned(state, result); return 1; } else { lua_pushstring(state, "lua_Mesh_getPartCount - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 1)."); lua_error(state); break; } } return 0; } int lua_Mesh_getPrimitiveType(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 1: { if ((lua_type(state, 1) == LUA_TUSERDATA)) { Mesh* instance = getInstance(state); Mesh::PrimitiveType result = instance->getPrimitiveType(); // Push the return value onto the stack. lua_pushstring(state, lua_stringFromEnum_MeshPrimitiveType(result)); return 1; } else { lua_pushstring(state, "lua_Mesh_getPrimitiveType - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 1)."); lua_error(state); break; } } return 0; } int lua_Mesh_getRefCount(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 1: { if ((lua_type(state, 1) == LUA_TUSERDATA)) { Mesh* instance = getInstance(state); unsigned int result = instance->getRefCount(); // Push the return value onto the stack. lua_pushunsigned(state, result); return 1; } else { lua_pushstring(state, "lua_Mesh_getRefCount - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 1)."); lua_error(state); break; } } return 0; } int lua_Mesh_getUrl(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 1: { if ((lua_type(state, 1) == LUA_TUSERDATA)) { Mesh* instance = getInstance(state); const char* result = instance->getUrl(); // Push the return value onto the stack. lua_pushstring(state, result); return 1; } else { lua_pushstring(state, "lua_Mesh_getUrl - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 1)."); lua_error(state); break; } } return 0; } int lua_Mesh_getVertexBuffer(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 1: { if ((lua_type(state, 1) == LUA_TUSERDATA)) { Mesh* instance = getInstance(state); void* returnPtr = (void*)new GLuint(instance->getVertexBuffer()); if (returnPtr) { ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject)); object->instance = returnPtr; object->owns = true; luaL_getmetatable(state, "GLuint"); lua_setmetatable(state, -2); } else { lua_pushnil(state); } return 1; } else { lua_pushstring(state, "lua_Mesh_getVertexBuffer - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 1)."); lua_error(state); break; } } return 0; } int lua_Mesh_getVertexCount(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 1: { if ((lua_type(state, 1) == LUA_TUSERDATA)) { Mesh* instance = getInstance(state); unsigned int result = instance->getVertexCount(); // Push the return value onto the stack. lua_pushunsigned(state, result); return 1; } else { lua_pushstring(state, "lua_Mesh_getVertexCount - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 1)."); lua_error(state); break; } } return 0; } int lua_Mesh_getVertexFormat(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 1: { if ((lua_type(state, 1) == LUA_TUSERDATA)) { Mesh* instance = getInstance(state); void* returnPtr = (void*)&(instance->getVertexFormat()); if (returnPtr) { ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject)); object->instance = returnPtr; object->owns = false; luaL_getmetatable(state, "VertexFormat"); lua_setmetatable(state, -2); } else { lua_pushnil(state); } return 1; } else { lua_pushstring(state, "lua_Mesh_getVertexFormat - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 1)."); lua_error(state); break; } } return 0; } int lua_Mesh_getVertexSize(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 1: { if ((lua_type(state, 1) == LUA_TUSERDATA)) { Mesh* instance = getInstance(state); unsigned int result = instance->getVertexSize(); // Push the return value onto the stack. lua_pushunsigned(state, result); return 1; } else { lua_pushstring(state, "lua_Mesh_getVertexSize - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 1)."); lua_error(state); break; } } return 0; } int lua_Mesh_isDynamic(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 1: { if ((lua_type(state, 1) == LUA_TUSERDATA)) { Mesh* instance = getInstance(state); bool result = instance->isDynamic(); // Push the return value onto the stack. lua_pushboolean(state, result); return 1; } else { lua_pushstring(state, "lua_Mesh_isDynamic - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 1)."); lua_error(state); break; } } return 0; } int lua_Mesh_release(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 1: { if ((lua_type(state, 1) == LUA_TUSERDATA)) { Mesh* instance = getInstance(state); instance->release(); return 0; } else { lua_pushstring(state, "lua_Mesh_release - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 1)."); lua_error(state); break; } } return 0; } int lua_Mesh_setBoundingBox(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 2: { if ((lua_type(state, 1) == LUA_TUSERDATA) && (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL)) { // Get parameter 1 off the stack. BoundingBox* param1 = ScriptController::getInstance()->getObjectPointer(2, "BoundingBox", true); Mesh* instance = getInstance(state); instance->setBoundingBox(*param1); return 0; } else { lua_pushstring(state, "lua_Mesh_setBoundingBox - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 2)."); lua_error(state); break; } } return 0; } int lua_Mesh_setBoundingSphere(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 2: { if ((lua_type(state, 1) == LUA_TUSERDATA) && (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL)) { // Get parameter 1 off the stack. BoundingSphere* param1 = ScriptController::getInstance()->getObjectPointer(2, "BoundingSphere", true); Mesh* instance = getInstance(state); instance->setBoundingSphere(*param1); return 0; } else { lua_pushstring(state, "lua_Mesh_setBoundingSphere - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 2)."); lua_error(state); break; } } return 0; } int lua_Mesh_setPrimitiveType(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 2: { if ((lua_type(state, 1) == LUA_TUSERDATA) && (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL)) { // Get parameter 1 off the stack. Mesh::PrimitiveType param1 = (Mesh::PrimitiveType)lua_enumFromString_MeshPrimitiveType(luaL_checkstring(state, 2)); Mesh* instance = getInstance(state); instance->setPrimitiveType(param1); return 0; } else { lua_pushstring(state, "lua_Mesh_setPrimitiveType - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 2)."); lua_error(state); break; } } return 0; } int lua_Mesh_setVertexData(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 2: { if ((lua_type(state, 1) == LUA_TUSERDATA) && (lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TLIGHTUSERDATA)) { // Get parameter 1 off the stack. float* param1 = ScriptController::getInstance()->getFloatPointer(2); Mesh* instance = getInstance(state); instance->setVertexData(param1); return 0; } else { lua_pushstring(state, "lua_Mesh_setVertexData - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } case 3: { if ((lua_type(state, 1) == LUA_TUSERDATA) && (lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TLIGHTUSERDATA) && lua_type(state, 3) == LUA_TNUMBER) { // Get parameter 1 off the stack. float* param1 = ScriptController::getInstance()->getFloatPointer(2); // Get parameter 2 off the stack. unsigned int param2 = (unsigned int)luaL_checkunsigned(state, 3); Mesh* instance = getInstance(state); instance->setVertexData(param1, param2); return 0; } else { lua_pushstring(state, "lua_Mesh_setVertexData - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } case 4: { if ((lua_type(state, 1) == LUA_TUSERDATA) && (lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TLIGHTUSERDATA) && lua_type(state, 3) == LUA_TNUMBER && lua_type(state, 4) == LUA_TNUMBER) { // Get parameter 1 off the stack. float* param1 = ScriptController::getInstance()->getFloatPointer(2); // Get parameter 2 off the stack. unsigned int param2 = (unsigned int)luaL_checkunsigned(state, 3); // Get parameter 3 off the stack. unsigned int param3 = (unsigned int)luaL_checkunsigned(state, 4); Mesh* instance = getInstance(state); instance->setVertexData(param1, param2, param3); return 0; } else { lua_pushstring(state, "lua_Mesh_setVertexData - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 2, 3 or 4)."); lua_error(state); break; } } return 0; } int lua_Mesh_static_createBoundingBox(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 1: { if ((lua_type(state, 1) == LUA_TUSERDATA || lua_type(state, 1) == LUA_TNIL)) { // Get parameter 1 off the stack. BoundingBox* param1 = ScriptController::getInstance()->getObjectPointer(1, "BoundingBox", true); void* returnPtr = (void*)Mesh::createBoundingBox(*param1); if (returnPtr) { ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject)); object->instance = returnPtr; object->owns = false; luaL_getmetatable(state, "Mesh"); lua_setmetatable(state, -2); } else { lua_pushnil(state); } return 1; } else { lua_pushstring(state, "lua_Mesh_static_createBoundingBox - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 1)."); lua_error(state); break; } } return 0; } int lua_Mesh_static_createLines(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 2: { if ((lua_type(state, 1) == LUA_TUSERDATA || lua_type(state, 1) == LUA_TTABLE || lua_type(state, 1) == LUA_TNIL) && lua_type(state, 2) == LUA_TNUMBER) { // Get parameter 1 off the stack. Vector3* param1 = ScriptController::getInstance()->getObjectPointer(1, "Vector3", false); // Get parameter 2 off the stack. unsigned int param2 = (unsigned int)luaL_checkunsigned(state, 2); void* returnPtr = (void*)Mesh::createLines(param1, param2); if (returnPtr) { ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject)); object->instance = returnPtr; object->owns = false; luaL_getmetatable(state, "Mesh"); lua_setmetatable(state, -2); } else { lua_pushnil(state); } return 1; } else { lua_pushstring(state, "lua_Mesh_static_createLines - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 2)."); lua_error(state); break; } } return 0; } int lua_Mesh_static_createMesh(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 2: { if ((lua_type(state, 1) == LUA_TUSERDATA || lua_type(state, 1) == LUA_TNIL) && lua_type(state, 2) == LUA_TNUMBER) { // Get parameter 1 off the stack. VertexFormat* param1 = ScriptController::getInstance()->getObjectPointer(1, "VertexFormat", true); // Get parameter 2 off the stack. unsigned int param2 = (unsigned int)luaL_checkunsigned(state, 2); void* returnPtr = (void*)Mesh::createMesh(*param1, param2); if (returnPtr) { ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject)); object->instance = returnPtr; object->owns = false; luaL_getmetatable(state, "Mesh"); lua_setmetatable(state, -2); } else { lua_pushnil(state); } return 1; } else { lua_pushstring(state, "lua_Mesh_static_createMesh - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } case 3: { if ((lua_type(state, 1) == LUA_TUSERDATA || lua_type(state, 1) == LUA_TNIL) && lua_type(state, 2) == LUA_TNUMBER && lua_type(state, 3) == LUA_TBOOLEAN) { // Get parameter 1 off the stack. VertexFormat* param1 = ScriptController::getInstance()->getObjectPointer(1, "VertexFormat", true); // Get parameter 2 off the stack. unsigned int param2 = (unsigned int)luaL_checkunsigned(state, 2); // Get parameter 3 off the stack. bool param3 = ScriptController::luaCheckBool(state, 3); void* returnPtr = (void*)Mesh::createMesh(*param1, param2, param3); if (returnPtr) { ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject)); object->instance = returnPtr; object->owns = false; luaL_getmetatable(state, "Mesh"); lua_setmetatable(state, -2); } else { lua_pushnil(state); } return 1; } else { lua_pushstring(state, "lua_Mesh_static_createMesh - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 2 or 3)."); lua_error(state); break; } } return 0; } int lua_Mesh_static_createQuad(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 4: { if ((lua_type(state, 1) == LUA_TUSERDATA || lua_type(state, 1) == LUA_TNIL) && (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL) && (lua_type(state, 3) == LUA_TUSERDATA || lua_type(state, 3) == LUA_TNIL) && (lua_type(state, 4) == LUA_TUSERDATA || lua_type(state, 4) == LUA_TNIL)) { // Get parameter 1 off the stack. Vector3* param1 = ScriptController::getInstance()->getObjectPointer(1, "Vector3", true); // Get parameter 2 off the stack. Vector3* param2 = ScriptController::getInstance()->getObjectPointer(2, "Vector3", true); // Get parameter 3 off the stack. Vector3* param3 = ScriptController::getInstance()->getObjectPointer(3, "Vector3", true); // Get parameter 4 off the stack. Vector3* param4 = ScriptController::getInstance()->getObjectPointer(4, "Vector3", true); void* returnPtr = (void*)Mesh::createQuad(*param1, *param2, *param3, *param4); if (returnPtr) { ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject)); object->instance = returnPtr; object->owns = false; luaL_getmetatable(state, "Mesh"); lua_setmetatable(state, -2); } else { lua_pushnil(state); } return 1; } else if (lua_type(state, 1) == LUA_TNUMBER && lua_type(state, 2) == LUA_TNUMBER && lua_type(state, 3) == LUA_TNUMBER && lua_type(state, 4) == LUA_TNUMBER) { // Get parameter 1 off the stack. float param1 = (float)luaL_checknumber(state, 1); // Get parameter 2 off the stack. float param2 = (float)luaL_checknumber(state, 2); // Get parameter 3 off the stack. float param3 = (float)luaL_checknumber(state, 3); // Get parameter 4 off the stack. float param4 = (float)luaL_checknumber(state, 4); void* returnPtr = (void*)Mesh::createQuad(param1, param2, param3, param4); if (returnPtr) { ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject)); object->instance = returnPtr; object->owns = false; luaL_getmetatable(state, "Mesh"); lua_setmetatable(state, -2); } else { lua_pushnil(state); } return 1; } else { lua_pushstring(state, "lua_Mesh_static_createQuad - Failed to match the given parameters to a valid function signature."); lua_error(state); } break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 4)."); lua_error(state); break; } } return 0; } int lua_Mesh_static_createQuadFullscreen(lua_State* state) { // Get the number of parameters. int paramCount = lua_gettop(state); // Attempt to match the parameters to a valid binding. switch (paramCount) { case 0: { void* returnPtr = (void*)Mesh::createQuadFullscreen(); if (returnPtr) { ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject)); object->instance = returnPtr; object->owns = false; luaL_getmetatable(state, "Mesh"); lua_setmetatable(state, -2); } else { lua_pushnil(state); } return 1; break; } default: { lua_pushstring(state, "Invalid number of parameters (expected 0)."); lua_error(state); break; } } return 0; } }