Fixture:getShape() returns a Shape of the type it actually is

--HG--
branch : box2d-update
This commit is contained in:
Bill Meltsner
2011-09-26 21:35:44 -04:00
parent 16fb73e92a
commit 356b3c880d
2 changed files with 18 additions and 2 deletions
+1 -1
View File
@@ -59,7 +59,7 @@ namespace box2d
float getRadius() const;
/**
* Gets the radius for the circle.
* Sets the radius for the circle.
**/
void setRadius(float r);
};
+17 -1
View File
@@ -119,7 +119,23 @@ namespace box2d
if(shape == 0)
return 0;
shape->retain();
luax_newtype(L, "Shape", PHYSICS_SHAPE_T, (void*)shape);
switch (shape->getType()) {
case Shape::SHAPE_EDGE:
luax_newtype(L, "EdgeShape", PHYSICS_EDGE_SHAPE_T, (void*)shape);
break;
case Shape::SHAPE_CHAIN:
luax_newtype(L, "ChainShape", PHYSICS_CHAIN_SHAPE_T, (void*)shape);
break;
case Shape::SHAPE_CIRCLE:
luax_newtype(L, "CircleShape", PHYSICS_CIRCLE_SHAPE_T, (void*)shape);
break;
case Shape::SHAPE_POLYGON:
luax_newtype(L, "PolygonShape", PHYSICS_POLYGON_SHAPE_T, (void*)shape);
break;
default:
luax_newtype(L, "Shape", PHYSICS_SHAPE_T, (void*)shape);
break;
}
return 1;
}