fixed bug not enabling bodies when adding forces or torques in OdeWorld

git-svn-id: svn://anubis/misc/OdeWorld@219 bd8a9e45-a331-0410-811e-c64571078777
This commit is contained in:
josh 2009-12-16 03:22:07 +00:00
parent 922046dbf3
commit 54c963fa3b
2 changed files with 20 additions and 0 deletions

View File

@ -500,25 +500,37 @@ void OdeWorld::Object::setRotation(dReal x, dReal y, dReal z)
void OdeWorld::Object::addForce(dReal fx, dReal fy, dReal fz) void OdeWorld::Object::addForce(dReal fx, dReal fy, dReal fz)
{ {
if (m_body != 0) if (m_body != 0)
{
dBodyAddForce(m_body, fx, fy, fz); dBodyAddForce(m_body, fx, fy, fz);
enableBody();
}
} }
void OdeWorld::Object::addForceRel(dReal fx, dReal fy, dReal fz) void OdeWorld::Object::addForceRel(dReal fx, dReal fy, dReal fz)
{ {
if (m_body != 0) if (m_body != 0)
{
dBodyAddRelForce(m_body, fx, fy, fz); dBodyAddRelForce(m_body, fx, fy, fz);
enableBody();
}
} }
void OdeWorld::Object::addTorque(dReal fx, dReal fy, dReal fz) void OdeWorld::Object::addTorque(dReal fx, dReal fy, dReal fz)
{ {
if (m_body != 0) if (m_body != 0)
{
dBodyAddTorque(m_body, fx, fy, fz); dBodyAddTorque(m_body, fx, fy, fz);
enableBody();
}
} }
void OdeWorld::Object::addTorqueRel(dReal fx, dReal fy, dReal fz) void OdeWorld::Object::addTorqueRel(dReal fx, dReal fy, dReal fz)
{ {
if (m_body != 0) if (m_body != 0)
{
dBodyAddRelTorque(m_body, fx, fy, fz); dBodyAddRelTorque(m_body, fx, fy, fz);
enableBody();
}
} }
void OdeWorld::Object::finalize() void OdeWorld::Object::finalize()
@ -545,3 +557,10 @@ void OdeWorld::Object::setMass(dReal newmass)
} }
} }
void OdeWorld::Object::enableBody()
{
if (m_body != 0)
{
dBodyEnable(m_body);
}
}

View File

@ -42,6 +42,7 @@ class OdeWorld
void finalize(); void finalize();
dReal getMass() { return m_mass.mass; } dReal getMass() { return m_mass.mass; }
void setMass(dReal newmass); void setMass(dReal newmass);
void enableBody();
protected: protected:
bool m_is_static; bool m_is_static;