diff --git a/lua/LuaFunctionSpace.cpp b/lua/LuaFunctionSpace.cpp index 4124b255502229c14bcb3d232a9b4d8cd3d3a607..920cee66c7ec67f7f552666df99ac795e43e9da9 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 554d01cfcf7e034cfbcb9542a4be52aa286b6a12..c2cd420a3d50776b411a2b15be89989bcd42f5e9 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