diff --git a/OdeWorld.cc b/OdeWorld.cc index f631264..db79db1 100644 --- a/OdeWorld.cc +++ b/OdeWorld.cc @@ -530,3 +530,13 @@ void OdeWorld::Object::finalize() dBodySetMass(m_body, &m_mass); } } + +void OdeWorld::Object::setMass(dReal newmass) +{ + if (m_body != 0) + { + dMassAdjust(&m_mass, newmass); + dBodySetMass(m_body, &m_mass); + } +} + diff --git a/OdeWorld.h b/OdeWorld.h index c939cdb..80a3ba4 100644 --- a/OdeWorld.h +++ b/OdeWorld.h @@ -40,6 +40,8 @@ class OdeWorld void addTorque(dReal fx, dReal fy, dReal fz); void addRelTorque(dReal fx, dReal fy, dReal fz); void finalize(); + dReal getMass() { return m_mass.mass; } + void setMass(dReal newmass); protected: bool m_is_static;