From 0c4b9784669d60f503d01490b958532df9231b26 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Tue, 25 Jun 2024 18:37:57 +0300 Subject: [PATCH] refactor libvecn --- src/logic/scripting/lua/libvecn.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/logic/scripting/lua/libvecn.cpp b/src/logic/scripting/lua/libvecn.cpp index a2a8a4a5..61155148 100644 --- a/src/logic/scripting/lua/libvecn.cpp +++ b/src/logic/scripting/lua/libvecn.cpp @@ -24,10 +24,10 @@ static int l_binop(lua::State* L) { } } -template -static int l_normalize(lua::State* L) { +template(*func)(const glm::vec&)> +static int l_unaryop(lua::State* L) { uint argc = lua::gettop(L); - auto vec = glm::normalize(lua::tovec(L, 1)); + auto vec = func(lua::tovec(L, 1)); switch (argc) { case 1: lua::createtable(L, n, 0); @@ -44,13 +44,13 @@ static int l_normalize(lua::State* L) { } } -template -static int l_len(lua::State* L) { +template&)> +static int l_scalar_op(lua::State* L) { auto vec = lua::tovec(L, 1); if (lua::gettop(L) != 1) { throw std::runtime_error("invalid arguments number (1 expected)"); } - return lua::pushnumber(L, glm::length(vec)); + return lua::pushnumber(L, func(vec)); } const luaL_Reg vec2lib [] = { @@ -58,8 +58,8 @@ const luaL_Reg vec2lib [] = { {"sub", lua::wrap>}, {"mul", lua::wrap>}, {"div", lua::wrap>}, - {"normalize", lua::wrap>}, - {"length", lua::wrap>}, + {"normalize", lua::wrap>}, + {"length", lua::wrap>}, {NULL, NULL} }; @@ -68,8 +68,8 @@ const luaL_Reg vec3lib [] = { {"sub", lua::wrap>}, {"mul", lua::wrap>}, {"div", lua::wrap>}, - {"normalize", lua::wrap>}, - {"length", lua::wrap>}, + {"normalize", lua::wrap>}, + {"length", lua::wrap>}, {NULL, NULL} }; @@ -78,7 +78,7 @@ const luaL_Reg vec4lib [] = { {"sub", lua::wrap>}, {"mul", lua::wrap>}, {"div", lua::wrap>}, - {"normalize", lua::wrap>}, - {"length", lua::wrap>}, + {"normalize", lua::wrap>}, + {"length", lua::wrap>}, {NULL, NULL} };