diff --git a/OdeWorld.cc b/OdeWorld.cc index f567618..46b22fd 100644 --- a/OdeWorld.cc +++ b/OdeWorld.cc @@ -168,6 +168,14 @@ OdeWorld::Object::Object(const OdeWorld::Object & orig) } } +OdeWorld::Object::~Object() +{ + for (int i = 0, sz = m_geoms.size(); i < sz; i++) + dGeomDestroy(m_geoms[i]); + if (m_body != 0) + dBodyDestroy(m_body); +} + dGeomID OdeWorld::Object::cloneGeom(dGeomID geom, dBodyID body) { dGeomID id = 0; diff --git a/OdeWorld.h b/OdeWorld.h index 0c10d59..c4cae6b 100644 --- a/OdeWorld.h +++ b/OdeWorld.h @@ -18,6 +18,7 @@ class OdeWorld public: Object(bool is_static, dWorldID world, dSpaceID space); Object(const Object & orig); + ~Object(); void loadPhy(const std::string & path); void setPosition(double x, double y, double z); @@ -62,7 +63,6 @@ class OdeWorld dWorldID m_world; dSpaceID m_space; dJointGroupID m_contactJointGroup; - std::map m_objects; }; #endif