From e9d88728261c5b3efbef5abed37deda2a04f9772 Mon Sep 17 00:00:00 2001 From: josh Date: Mon, 12 Oct 2009 15:39:38 +0000 Subject: [PATCH] added a destructor to OdeWorld::Object to clean up the ODE body and geometries git-svn-id: svn://anubis/misc/OdeWorld@170 bd8a9e45-a331-0410-811e-c64571078777 --- OdeWorld.cc | 8 ++++++++ OdeWorld.h | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) 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