1
0
Fork 0
mirror of https://github.com/bjornbytes/lovr.git synced 2024-07-04 13:33:34 +00:00

Mat4:getPosition; Mat4:getOrientation; Mat4:getScale;

This commit is contained in:
bjorn 2023-04-28 21:37:42 -07:00
parent 6862b8c970
commit c5cea29428

View file

@ -1828,6 +1828,37 @@ static int l_lovrMat4Unpack(lua_State* L) {
}
}
static int l_lovrMat4GetPosition(lua_State* L) {
mat4 m = luax_checkvector(L, 1, V_MAT4, NULL);
float position[4];
mat4_getPosition(m, position);
lua_pushnumber(L, position[0]);
lua_pushnumber(L, position[1]);
lua_pushnumber(L, position[2]);
return 3;
}
static int l_lovrMat4GetOrientation(lua_State* L) {
mat4 m = luax_checkvector(L, 1, V_MAT4, NULL);
float angle, ax, ay, az;
mat4_getAngleAxis(m, &angle, &ax, &ay, &az);
lua_pushnumber(L, angle);
lua_pushnumber(L, ax);
lua_pushnumber(L, ay);
lua_pushnumber(L, az);
return 4;
}
static int l_lovrMat4GetScale(lua_State* L) {
mat4 m = luax_checkvector(L, 1, V_MAT4, NULL);
float scale[4];
mat4_getScale(m, scale);
lua_pushnumber(L, scale[0]);
lua_pushnumber(L, scale[1]);
lua_pushnumber(L, scale[2]);
return 3;
}
int l_lovrMat4Set(lua_State* L) {
mat4 m = luax_checkvector(L, 1, V_MAT4, NULL);
int top = lua_gettop(L);
@ -2130,6 +2161,9 @@ int l_lovrMat4__metaindex(lua_State* L) {
const luaL_Reg lovrMat4[] = {
{ "equals", l_lovrMat4Equals },
{ "unpack", l_lovrMat4Unpack },
{ "getPosition", l_lovrMat4GetPosition },
{ "getOrientation", l_lovrMat4GetOrientation },
{ "getScale", l_lovrMat4GetScale },
{ "set", l_lovrMat4Set },
{ "mul", l_lovrMat4Mul },
{ "identity", l_lovrMat4Identity },