Changed function names of love.physics to match Box2D.

This commit is contained in:
rude
2009-08-04 23:05:49 +02:00
parent cc9a142a98
commit 797f536f05
22 changed files with 157 additions and 236 deletions
+9 -52
View File
@@ -142,32 +142,22 @@ namespace box2d
return 0;
}
int Shape::setCategory(lua_State * L)
void Shape::setFilterData(int * v)
{
b2FilterData f = shape->GetFilterData();
f.categoryBits = (uint16)getBits(L);
b2FilterData f;
f.categoryBits = (unsigned short)v[0];
f.maskBits = (unsigned short)v[1];
f.groupIndex = v[2];
shape->SetFilterData(f);
shape->GetBody()->GetWorld()->Refilter(shape);
return 0;
}
int Shape::setMask(lua_State * L)
void Shape::getFilterData(int * v)
{
b2FilterData f = shape->GetFilterData();
f.maskBits = ~(uint16)getBits(L);
shape->SetFilterData(f);
shape->GetBody()->GetWorld()->Refilter(shape);
return 0;
}
int Shape::getCategory(lua_State * L)
{
return pushBits(L, shape->GetFilterData().categoryBits);
}
int Shape::getMask(lua_State * L)
{
return pushBits(L, ~(shape->GetFilterData().maskBits));
v[0] = (int)f.categoryBits;
v[1] = (int)f.maskBits;
v[2] = f.groupIndex;
}
int Shape::setData(lua_State * L)
@@ -221,39 +211,6 @@ namespace box2d
return 8;
}
uint16 Shape::getBits(lua_State * L)
{
// Get number of args.
int argc = lua_gettop(L);
// The new bitset.
std::bitset<16> b;
for(int i = 1;i<=argc;i++)
{
size_t bpos = (size_t)(lua_tointeger(L, i)-1);
if(bpos < 0 || bpos > 16)
return luaL_error(L, "Values must be in range 1-16.");
b.set(bpos, true);
}
return (uint16)b.to_ulong();
}
int Shape::pushBits(lua_State * L, uint16 bits)
{
// Create a bitset.
std::bitset<16> b((unsigned long)bits);
// Push all set bits.
for(int i = 0;i<16;i++)
if(b.test(i))
lua_pushinteger(L, i+1);
// Count number of set bits.
return (int)b.count();
}
} // box2d
} // physics
} // love