From 3eb7a332f7d0f391be64bb00299bc12926e77622 Mon Sep 17 00:00:00 2001 From: Nicolas Marsic <marsic@temf.tu-darmstadt.de> Date: Sun, 15 Nov 2020 17:22:44 +0100 Subject: [PATCH] LuaFunctionSpace: add __tostring function --- lua/LuaFunctionSpace.cpp | 20 ++++++++++++++++++-- lua/LuaFunctionSpace.h | 4 ++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/lua/LuaFunctionSpace.cpp b/lua/LuaFunctionSpace.cpp index 4124b255..920cee66 100644 --- a/lua/LuaFunctionSpace.cpp +++ b/lua/LuaFunctionSpace.cpp @@ -20,8 +20,9 @@ const struct luaL_Reg libsf_FunctionSpace_f[] = { }; const struct luaL_Reg libsf_FunctionSpace_m[] = { - {"__gc", lua_FunctionSpace_delete}, - {NULL, NULL} + {"__tostring", lua_FunctionSpace_toString}, + {"__gc", lua_FunctionSpace_delete}, + {NULL, NULL} }; extern "C" int luaopen_libsf_functionspace(lua_State *L){ @@ -136,4 +137,19 @@ int lua_FunctionSpace_delete(lua_State *L){ return 0; } +int lua_FunctionSpace_toString(lua_State *L){ + FunctionSpace **lua = + (FunctionSpace**)luaL_checkudata(L, 1, "sf.FunctionSpace"); + lua_pushstring(L, lua_FunctionSpace_toString(*lua).c_str()); + + return 1; +} + +string lua_FunctionSpace_toString(FunctionSpace *fs){ + stringstream str; + str << "Function space: " << fs; + + return str.str(); +} + #endif diff --git a/lua/LuaFunctionSpace.h b/lua/LuaFunctionSpace.h index 554d01cf..c2cd420a 100644 --- a/lua/LuaFunctionSpace.h +++ b/lua/LuaFunctionSpace.h @@ -4,6 +4,7 @@ #include "SmallFemConfig.h" #ifdef HAVE_LUA +#include "FunctionSpace.h" extern "C"{ #include "lua.h" } @@ -13,5 +14,8 @@ extern "C" int luaopen_libsf_functionspace(lua_State *L); int lua_FunctionSpace_new(lua_State *L); int lua_FunctionSpace_delete(lua_State *L); +int lua_FunctionSpace_toString(lua_State *L); +std::string lua_FunctionSpace_toString(sf::FunctionSpace *fs); + #endif #endif -- GitLab