static int VMatrix_Init (lua_State *L) { if (lua_gettop(L) < 17) luaL_checkvmatrix(L, 1).Init(luaL_checkmatrix(L, 2)); else luaL_checkvmatrix(L, 1).Init(luaL_checknumber(L, 2), luaL_checknumber(L, 3), luaL_checknumber(L, 4), luaL_checknumber(L, 5), luaL_checknumber(L, 6), luaL_checknumber(L, 7), luaL_checknumber(L, 8), luaL_checknumber(L, 9), luaL_checknumber(L, 10), luaL_checknumber(L, 11), luaL_checknumber(L, 12), luaL_checknumber(L, 13), luaL_checknumber(L, 14), luaL_checknumber(L, 15), luaL_checknumber(L, 16), luaL_checknumber(L, 17)); return 0; }
static int matrix3x4_t___index (lua_State *L) { matrix3x4_t matrix = luaL_checkmatrix(L, 1); const char *field = luaL_checkstring(L, 2); if (strcmp(field, "0") == 0) { lua_newtable(L); for (int j = 0; j < 4; j++) { lua_pushinteger(L, j); lua_pushnumber(L, matrix[0][j]); lua_settable(L, -3); } } else if (strcmp(field, "1") == 0) { lua_newtable(L); for (int j = 0; j < 4; j++) { lua_pushinteger(L, j); lua_pushnumber(L, matrix[1][j]); lua_settable(L, -3); } } else if (strcmp(field, "2") == 0) { lua_newtable(L); for (int j = 0; j < 4; j++) { lua_pushinteger(L, j); lua_pushnumber(L, matrix[2][j]); lua_settable(L, -3); } } else { lua_getmetatable(L, 1); lua_pushvalue(L, 2); lua_gettable(L, -2); } return 1; }
static int matrix3x4_t___tostring (lua_State *L) { matrix3x4_t matrix = luaL_checkmatrix(L, 1); lua_pushfstring(L, "matrix3x4_t: %f, %f, %f, %f\n %f, %f, %f, %f\n %f, %f, %f, %f", matrix[0][0], matrix[0][1], matrix[0][2], matrix[0][3], matrix[1][0], matrix[1][1], matrix[1][2], matrix[1][3], matrix[2][0], matrix[2][1], matrix[2][2], matrix[2][3] ); return 1; }
static int luasrc_VMatrix (lua_State *L) { if (lua_gettop(L) < 1) { VMatrix matrix = VMatrix(); memset( &matrix, 0, sizeof( VMatrix ) ); lua_pushvmatrix(L, matrix); } else if (lua_gettop(L) < 3) { VMatrix matrix = VMatrix(luaL_checkmatrix(L, 1)); lua_pushvmatrix(L, matrix); } else if (lua_gettop(L) < 16) { VMatrix matrix = VMatrix(luaL_checkvector(L, 1), luaL_checkvector(L, 2), luaL_checkvector(L, 3)); lua_pushvmatrix(L, matrix); } else { VMatrix matrix = VMatrix(luaL_checknumber(L, 1), luaL_checknumber(L, 2), luaL_checknumber(L, 3), luaL_checknumber(L, 4), luaL_checknumber(L, 5), luaL_checknumber(L, 6), luaL_checknumber(L, 7), luaL_checknumber(L, 8), luaL_checknumber(L, 9), luaL_checknumber(L, 10), luaL_checknumber(L, 11), luaL_checknumber(L, 12), luaL_checknumber(L, 13), luaL_checknumber(L, 14), luaL_checknumber(L, 15), luaL_checknumber(L, 16)); lua_pushvmatrix(L, matrix); } return 1; }
static int matrix3x4_t_Invalidate (lua_State *L) { luaL_checkmatrix(L, 1).Invalidate(); return 0; }
static int matrix3x4_t_Init (lua_State *L) { luaL_checkmatrix(L, 1).Init(luaL_checkvector(L, 2), luaL_checkvector(L, 3), luaL_checkvector(L, 4), luaL_checkvector(L, 5)); return 0; }
static int matrix3x4_t_Base (lua_State *L) { lua_pushnumber(L, *luaL_checkmatrix(L, 1).Base()); return 1; }
static int VMatrix_CopyFrom3x4 (lua_State *L) { luaL_checkvmatrix(L, 1).CopyFrom3x4(luaL_checkmatrix(L, 2)); return 0; }
static int VMatrix_Set3x4 (lua_State *L) { luaL_checkvmatrix(L, 1).Set3x4(luaL_checkmatrix(L, 2)); return 0; }