diff options
| author | jussi | 2023-11-13 23:42:58 +0200 |
|---|---|---|
| committer | jussi | 2023-11-13 23:42:58 +0200 |
| commit | 7b10306ed5c87517800a6058ad84e27c866f81c6 (patch) | |
| tree | 68b58fed65ed81362a80b34974bfaa8c4345e5c8 /src/lua_core.c | |
| parent | e06d98e0ed820c64df99c451e2c24a481d7349e8 (diff) | |
| download | reilua-enhanced-7b10306ed5c87517800a6058ad84e27c866f81c6.tar.gz reilua-enhanced-7b10306ed5c87517800a6058ad84e27c866f81c6.tar.bz2 reilua-enhanced-7b10306ed5c87517800a6058ad84e27c866f81c6.zip | |
Matrix library.
Diffstat (limited to 'src/lua_core.c')
| -rw-r--r-- | src/lua_core.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/lua_core.c b/src/lua_core.c index 843a38a..0eca9be 100644 --- a/src/lua_core.c +++ b/src/lua_core.c @@ -2693,6 +2693,19 @@ Matrix uluaGetMatrix( lua_State *L, int index ) { if ( lua_isnumber( L, -1 ) ) { m[i][j] = lua_tonumber( L, -1 ); } + /* Look for one depth further if Matrix given as class. */ + else if ( lua_istable( L, -1 ) ) { + int t3 = lua_gettop( L ), k = 0; + lua_pushnil( L ); + + while ( lua_next( L, t3 ) != 0 ) { + if ( lua_isnumber( L, -1 ) ) { + m[j][k] = lua_tonumber( L, -1 ); + } + k++; + lua_pop( L, 1 ); + } + } j++; lua_pop( L, 1 ); } |
