Update ChainShape API

--HG--
branch : box2d-update
This commit is contained in:
Bill Meltsner
2011-09-23 22:32:39 -04:00
parent 367dbc2ecc
commit 6e7d83d7ea
4 changed files with 23 additions and 3 deletions
+9 -3
View File
@@ -71,23 +71,29 @@ namespace box2d
return new EdgeShape(&e);
}
int ChainShape::getChildCount() const
{
b2ChainShape * c = (b2ChainShape *)shape;
return c->GetChildCount();
}
int ChainShape::getVertexCount() const
{
b2ChainShape * c = (b2ChainShape *)shape;
return c->GetVertexCount();
return c->m_count;
}
b2Vec2 ChainShape::getVertex(int index) const
{
b2ChainShape * c = (b2ChainShape *)shape;
const b2Vec2 & v = c->GetVertex(index);
const b2Vec2 & v = c->m_vertices[index];
return Physics::scaleUp(v);
}
const b2Vec2 * ChainShape::getVertices() const
{
b2ChainShape * c = (b2ChainShape *)shape;
return c->GetVertices();
return c->m_vertices;
}
} // box2d
+5
View File
@@ -66,6 +66,11 @@ namespace box2d
**/
void setPrevVertex(float x, float y);
/**
* Gets the number of children shapes.
**/
int getChildCount() const;
/**
* Returns a child EdgeShape.
* @param index The index of the child shape.
@@ -50,6 +50,13 @@ namespace box2d
return 0;
}
int w_ChainShape_getChildCount(lua_State * L)
{
ChainShape * c = luax_checkchainshape(L, 1);
lua_pushinteger(L, c->getChildCount());
return 1;
}
int w_ChainShape_getChildEdge(lua_State * L)
{
ChainShape * c = luax_checkchainshape(L, 1);
@@ -96,6 +103,7 @@ namespace box2d
static const luaL_Reg functions[] = {
{ "setNextVertex", w_ChainShape_setNextVertex },
{ "setPrevVertex", w_ChainShape_setPrevVertex },
{ "getChildCount", w_ChainShape_getChildCount },
{ "getChildEdge", w_ChainShape_getChildEdge },
{ "getVertexCount", w_ChainShape_getVertexCount },
{ "getVertex", w_ChainShape_getVertex },
@@ -36,6 +36,7 @@ namespace box2d
int w_ChainShape_setNextVertex(lua_State * L);
int w_ChainShape_setPrevVertex(lua_State * L);
int w_ChainShape_getChildCount(lua_State * L);
int w_ChainShape_getChildEdge(lua_State * L);
int w_ChainShape_getVertexCount(lua_State * L);
int w_ChainShape_getVertex(lua_State * L);