Issue #225: Added cleanup of allocated memory in BulletNifLoader and BulletShapeLoader.

actorid
Lukasz Gromanowski 13 years ago
parent a7ac0e526e
commit d3b88b9e34

@ -51,7 +51,11 @@ using namespace Mangle::VFS;
using namespace NifBullet;
//====================================================================================================
ManualBulletShapeLoader::~ManualBulletShapeLoader()
{
delete vfs;
}
Ogre::Matrix3 ManualBulletShapeLoader::getMatrix(Nif::Transformation* tr)
{
Ogre::Matrix3 rot(tr->rotation.v[0].array[0],tr->rotation.v[0].array[1],tr->rotation.v[0].array[2],
@ -135,7 +139,21 @@ void ManualBulletShapeLoader::loadResource(Ogre::Resource *resource)
handleNode(node,0,Ogre::Matrix3::IDENTITY,Ogre::Vector3::ZERO,1,hasCollisionNode,false,true);
}
currentShape = new btBvhTriangleMeshShape(mTriMesh,true);
struct TriangleMeshShape : public btBvhTriangleMeshShape
{
TriangleMeshShape(btStridingMeshInterface* meshInterface, bool useQuantizedAabbCompression)
: btBvhTriangleMeshShape(meshInterface, useQuantizedAabbCompression)
{
}
virtual ~TriangleMeshShape()
{
delete getTriangleInfoMap();
delete m_meshInterface;
}
};
currentShape = new TriangleMeshShape(mTriMesh,true);
cShape->Shape = currentShape;
}

@ -69,7 +69,7 @@ class ManualBulletShapeLoader : public BulletShapeLoader
public:
ManualBulletShapeLoader():resourceGroup("General"){vfs = 0;}
virtual ~ManualBulletShapeLoader() {}
virtual ~ManualBulletShapeLoader();
void warn(std::string msg)
{

@ -22,6 +22,7 @@ Ogre::Resource(creator, name, handle, group, isManual, loader)
BulletShape::~BulletShape()
{
deleteShape(Shape);
}
// farm out to BulletShapeLoader

Loading…
Cancel
Save