diff --git a/src/api/types/model.c b/src/api/types/model.c index 3444ae9f..373d372a 100644 --- a/src/api/types/model.c +++ b/src/api/types/model.c @@ -9,6 +9,13 @@ int l_lovrModelDraw(lua_State* L) { return 0; } +int l_lovrModelGetMesh(lua_State* L) { + Model* model = luax_checktype(L, 1, Model); + Mesh* mesh = lovrModelGetMesh(model); + luax_pushtype(L, Mesh, mesh); + return 1; +} + int l_lovrModelGetTexture(lua_State* L) { Model* model = luax_checktype(L, 1, Model); Texture* texture = lovrModelGetTexture(model); @@ -25,6 +32,7 @@ int l_lovrModelSetTexture(lua_State* L) { const luaL_Reg lovrModel[] = { { "draw", l_lovrModelDraw }, + { "getMesh", l_lovrModelGetMesh }, { "getTexture", l_lovrModelGetTexture }, { "setTexture", l_lovrModelSetTexture }, { NULL, NULL } diff --git a/src/graphics/model.c b/src/graphics/model.c index f1cb4b35..c3c2ee58 100644 --- a/src/graphics/model.c +++ b/src/graphics/model.c @@ -79,6 +79,10 @@ void lovrModelDraw(Model* model, mat4 transform) { lovrGraphicsPop(); } +Mesh* lovrModelGetMesh(Model* model) { + return model->mesh; +} + Texture* lovrModelGetTexture(Model* model) { return model->texture; } diff --git a/src/graphics/model.h b/src/graphics/model.h index d5719f79..da110096 100644 --- a/src/graphics/model.h +++ b/src/graphics/model.h @@ -17,5 +17,6 @@ typedef struct { Model* lovrModelCreate(ModelData* modelData); void lovrModelDestroy(const Ref* ref); void lovrModelDraw(Model* model, mat4 transform); +Mesh* lovrModelGetMesh(Model* model); Texture* lovrModelGetTexture(Model* model); void lovrModelSetTexture(Model* model, Texture* texture);