void CKLBLuaLibMatrix::getVector(CLuaState& lua, VECTOR * vec) { // Luaスタックトップにはvectorテーブルが積んである for(int n = 0; n < 4; n++) { lua.retInt(n + 1); lua.tableGet(); vec->v[n] = lua.getFloat(-1); lua.pop(1); } }
void CKLBLuaLibMatrix::getMatrix(CLuaState& lua, MATRIX * ret) { // 最上位には対象の配列が積んである for(int idx = 0; idx < 16; idx++) { lua.retInt(idx + 1); // Luaテーブル上のindexを積む lua.tableGet(); // 対応する値を取得する float val = lua.getFloat(-1); ret->m[idx] = val; lua.pop(1); } }