Support added for 'coneX' and 'coneZ' shapes as physical objects
(previously only as animated objects). Both 'cone' and 'coneY' is now accepted, too. git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@5483 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
dc301c1726
commit
79641e7f88
@ -68,7 +68,7 @@ void ThreeDAnimation::createPhysicsBody(const std::string &shape)
|
||||
float radius = 0.5f*std::max(extend.getY(), extend.getZ());
|
||||
m_collision_shape = new btConeShapeX(radius, extend.getX());
|
||||
}
|
||||
else if(shape=="coneY")
|
||||
else if(shape=="coneY" || shape=="cone")
|
||||
{
|
||||
float radius = 0.5f*std::max(extend.getX(), extend.getZ());
|
||||
m_collision_shape = new btConeShape(radius, extend.getY());
|
||||
|
@ -51,7 +51,9 @@ PhysicalObject::PhysicalObject(const XMLNode &xml_node)
|
||||
xml_node.get("shape", &shape );
|
||||
|
||||
m_body_type = MP_NONE;
|
||||
if (shape=="cone" ) m_body_type = MP_CONE;
|
||||
if (shape=="cone"||shape=="coneY") m_body_type = MP_CONE;
|
||||
else if(shape=="coneX" ) m_body_type = MP_CONE_X;
|
||||
else if(shape=="coneZ" ) m_body_type = MP_CONE_Z;
|
||||
else if(shape=="box" ) m_body_type = MP_BOX;
|
||||
else if(shape=="sphere" ) m_body_type = MP_SPHERE;
|
||||
else fprintf(stderr, "Unknown shape type : %s\n", shape.c_str());
|
||||
@ -93,6 +95,20 @@ void PhysicalObject::init()
|
||||
m_shape = new btConeShape(m_radius, extend.getY());
|
||||
break;
|
||||
}
|
||||
case MP_CONE_X: {
|
||||
if(m_radius<0)
|
||||
m_radius = 0.5f*sqrt(extend.getY()*extend.getY() +
|
||||
extend.getZ()*extend.getZ());
|
||||
m_shape = new btConeShapeX(m_radius, extend.getY());
|
||||
break;
|
||||
}
|
||||
case MP_CONE_Z: {
|
||||
if(m_radius<0)
|
||||
m_radius = 0.5f*sqrt(extend.getX()*extend.getX() +
|
||||
extend.getY()*extend.getY());
|
||||
m_shape = new btConeShapeZ(m_radius, extend.getY());
|
||||
break;
|
||||
}
|
||||
case MP_BOX: m_shape = new btBoxShape(0.5*extend);
|
||||
break;
|
||||
case MP_SPHERE: {
|
||||
|
@ -36,7 +36,10 @@ class XMLNode;
|
||||
class PhysicalObject : public TrackObject
|
||||
{
|
||||
public:
|
||||
enum bodyTypes {MP_NONE, MP_CONE, MP_BOX, MP_SPHERE};
|
||||
/** The supported collision shapes. */
|
||||
enum bodyTypes {MP_NONE,
|
||||
MP_CONE, MP_CONE_X, MP_CONE_Z,
|
||||
MP_BOX, MP_SPHERE};
|
||||
|
||||
protected:
|
||||
/** The shape of this object. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user