delete preconditioner in destructor

This commit is contained in:
Xuchen Han
2019-08-21 22:44:10 -07:00
parent 750ff33f26
commit b93c3c56ed
3 changed files with 9 additions and 4 deletions

View File

@@ -24,6 +24,11 @@ btDeformableBackwardEulerObjective::btDeformableBackwardEulerObjective(btAligned
m_preconditioner = new DefaultPreconditioner(); m_preconditioner = new DefaultPreconditioner();
} }
btDeformableBackwardEulerObjective::~btDeformableBackwardEulerObjective()
{
delete m_preconditioner;
}
void btDeformableBackwardEulerObjective::reinitialize(bool nodeUpdated, btScalar dt) void btDeformableBackwardEulerObjective::reinitialize(bool nodeUpdated, btScalar dt)
{ {
BT_PROFILE("reinitialize"); BT_PROFILE("reinitialize");

View File

@@ -26,13 +26,11 @@
#include "btDeformableMultiBodyDynamicsWorld.h" #include "btDeformableMultiBodyDynamicsWorld.h"
#include "LinearMath/btQuickprof.h" #include "LinearMath/btQuickprof.h"
//class btDeformableMultiBodyDynamicsWorld;
class btDeformableBackwardEulerObjective class btDeformableBackwardEulerObjective
{ {
public: public:
typedef btAlignedObjectArray<btVector3> TVStack; typedef btAlignedObjectArray<btVector3> TVStack;
btScalar m_dt; btScalar m_dt;
// btDeformableMultiBodyDynamicsWorld* m_world;
btAlignedObjectArray<btDeformableLagrangianForce*> m_lf; btAlignedObjectArray<btDeformableLagrangianForce*> m_lf;
btAlignedObjectArray<btSoftBody *>& m_softBodies; btAlignedObjectArray<btSoftBody *>& m_softBodies;
Preconditioner* m_preconditioner; Preconditioner* m_preconditioner;
@@ -41,7 +39,7 @@ public:
btAlignedObjectArray<btSoftBody::Node* > m_nodes; btAlignedObjectArray<btSoftBody::Node* > m_nodes;
btDeformableBackwardEulerObjective(btAlignedObjectArray<btSoftBody *>& softBodies, const TVStack& backup_v); btDeformableBackwardEulerObjective(btAlignedObjectArray<btSoftBody *>& softBodies, const TVStack& backup_v);
virtual ~btDeformableBackwardEulerObjective() {} virtual ~btDeformableBackwardEulerObjective();
void initialize(){} void initialize(){}

View File

@@ -22,6 +22,7 @@ public:
typedef btAlignedObjectArray<btVector3> TVStack; typedef btAlignedObjectArray<btVector3> TVStack;
virtual void operator()(const TVStack& x, TVStack& b) = 0; virtual void operator()(const TVStack& x, TVStack& b) = 0;
virtual void reinitialize(bool nodeUpdated) = 0; virtual void reinitialize(bool nodeUpdated) = 0;
virtual ~Preconditioner(){}
}; };
class DefaultPreconditioner : public Preconditioner class DefaultPreconditioner : public Preconditioner
@@ -35,8 +36,9 @@ public:
} }
virtual void reinitialize(bool nodeUpdated) virtual void reinitialize(bool nodeUpdated)
{ {
} }
virtual ~DefaultPreconditioner(){}
}; };
class MassPreconditioner : public Preconditioner class MassPreconditioner : public Preconditioner