From 54c963fa3b1c707d64b313133d460a2c7884b747 Mon Sep 17 00:00:00 2001 From: josh Date: Wed, 16 Dec 2009 03:22:07 +0000 Subject: [PATCH] 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 --- OdeWorld.cc | 19 +++++++++++++++++++ OdeWorld.h | 1 + 2 files changed, 20 insertions(+) diff --git a/OdeWorld.cc b/OdeWorld.cc index e0daea4..04fb0de 100644 --- a/OdeWorld.cc +++ b/OdeWorld.cc @@ -500,25 +500,37 @@ void OdeWorld::Object::setRotation(dReal x, dReal y, dReal z) void OdeWorld::Object::addForce(dReal fx, dReal fy, dReal fz) { if (m_body != 0) + { dBodyAddForce(m_body, fx, fy, fz); + enableBody(); + } } void OdeWorld::Object::addForceRel(dReal fx, dReal fy, dReal fz) { if (m_body != 0) + { dBodyAddRelForce(m_body, fx, fy, fz); + enableBody(); + } } void OdeWorld::Object::addTorque(dReal fx, dReal fy, dReal fz) { if (m_body != 0) + { dBodyAddTorque(m_body, fx, fy, fz); + enableBody(); + } } void OdeWorld::Object::addTorqueRel(dReal fx, dReal fy, dReal fz) { if (m_body != 0) + { dBodyAddRelTorque(m_body, fx, fy, fz); + enableBody(); + } } 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); + } +} diff --git a/OdeWorld.h b/OdeWorld.h index ea7e248..89f942f 100644 --- a/OdeWorld.h +++ b/OdeWorld.h @@ -42,6 +42,7 @@ class OdeWorld void finalize(); dReal getMass() { return m_mass.mass; } void setMass(dReal newmass); + void enableBody(); protected: bool m_is_static;