setDt in reinitialize and remove unused variables
This commit is contained in:
@@ -113,13 +113,13 @@ public:
|
||||
typedef btAlignedObjectArray<btAlignedObjectArray<btScalar> > TArrayStack;
|
||||
btAlignedObjectArray<btSoftBody *> m_softBodies;
|
||||
btDeformableRigidDynamicsWorld* m_world;
|
||||
const btAlignedObjectArray<btSoftBody::Node*>* m_nodes;
|
||||
// const btAlignedObjectArray<btSoftBody::Node*>* m_nodes;
|
||||
const btScalar& m_dt;
|
||||
|
||||
btCGProjection(btAlignedObjectArray<btSoftBody *>& softBodies, const btScalar& dt, const btAlignedObjectArray<btSoftBody::Node*>* nodes)
|
||||
btCGProjection(btAlignedObjectArray<btSoftBody *>& softBodies, const btScalar& dt)
|
||||
: m_softBodies(softBodies)
|
||||
, m_dt(dt)
|
||||
, m_nodes(nodes)
|
||||
// , m_nodes(nodes)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
btDeformableBackwardEulerObjective::btDeformableBackwardEulerObjective(btAlignedObjectArray<btSoftBody *>& softBodies, const TVStack& backup_v)
|
||||
: m_softBodies(softBodies)
|
||||
, projection(m_softBodies, m_dt, &m_nodes)
|
||||
, projection(m_softBodies, m_dt)
|
||||
, m_backupVelocity(backup_v)
|
||||
{
|
||||
m_preconditioner = new DefaultPreconditioner();
|
||||
|
||||
@@ -31,8 +31,6 @@ btDeformableBodySolver::~btDeformableBodySolver()
|
||||
void btDeformableBodySolver::solveConstraints(float solverdt)
|
||||
{
|
||||
BT_PROFILE("solveConstraints");
|
||||
m_objective->setDt(solverdt);
|
||||
|
||||
// add constraints to the solver
|
||||
setConstraints();
|
||||
|
||||
@@ -51,22 +49,16 @@ void btDeformableBodySolver::computeStep(TVStack& dv, const TVStack& residual)
|
||||
m_cg.solve(*m_objective, dv, residual, tolerance);
|
||||
}
|
||||
|
||||
void btDeformableBodySolver::reinitialize(const btAlignedObjectArray<btSoftBody *>& softBodies)
|
||||
void btDeformableBodySolver::reinitialize(const btAlignedObjectArray<btSoftBody *>& softBodies, btScalar dt)
|
||||
{
|
||||
m_objective->setDt(dt);
|
||||
m_softBodySet.copyFromArray(softBodies);
|
||||
bool nodeUpdated = updateNodes();
|
||||
if (nodeUpdated)
|
||||
{
|
||||
m_dv.resize(m_numNodes);
|
||||
m_residual.resize(m_numNodes);
|
||||
m_backupVelocity.resize(m_numNodes);
|
||||
}
|
||||
|
||||
for (int i = 0; i < m_dv.size(); ++i)
|
||||
{
|
||||
m_dv[i].setZero();
|
||||
m_residual[i].setZero();
|
||||
}
|
||||
m_dv.resize(m_numNodes, btVector3(0,0,0));
|
||||
m_residual.resize(m_numNodes, btVector3(0,0,0));
|
||||
m_backupVelocity.resize(m_numNodes, btVector3(0,0,0));
|
||||
|
||||
m_objective->reinitialize(nodeUpdated);
|
||||
}
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ public:
|
||||
|
||||
virtual void solveConstraints(float solverdt);
|
||||
|
||||
void reinitialize(const btAlignedObjectArray<btSoftBody *>& softBodies);
|
||||
void reinitialize(const btAlignedObjectArray<btSoftBody *>& softBodies, btScalar dt);
|
||||
|
||||
void setConstraints();
|
||||
|
||||
|
||||
@@ -254,7 +254,6 @@ void btDeformableContactProjection::setConstraints()
|
||||
btSoftBody* psb = m_softBodies[i];
|
||||
btMultiBodyJacobianData jacobianData_normal;
|
||||
btMultiBodyJacobianData jacobianData_complementary;
|
||||
std::cout <<psb->m_rcontacts.size() << std::endl;
|
||||
for (int j = 0; j < psb->m_rcontacts.size(); ++j)
|
||||
{
|
||||
const btSoftBody::RContact& c = psb->m_rcontacts[j];
|
||||
|
||||
@@ -25,8 +25,8 @@ public:
|
||||
btHashMap<btHashInt, btAlignedObjectArray<DeformableContactConstraint> > m_constraints;
|
||||
btHashMap<btHashInt, btAlignedObjectArray<DeformableFrictionConstraint> >m_frictions;
|
||||
|
||||
btDeformableContactProjection(btAlignedObjectArray<btSoftBody *>& softBodies, const btScalar& dt, const btAlignedObjectArray<btSoftBody::Node*>* nodes)
|
||||
: btCGProjection(softBodies, dt, nodes)
|
||||
btDeformableContactProjection(btAlignedObjectArray<btSoftBody *>& softBodies, const btScalar& dt)
|
||||
: btCGProjection(softBodies, dt)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -179,7 +179,7 @@ void btDeformableRigidDynamicsWorld::predictUnconstraintMotion(btScalar timeStep
|
||||
void btDeformableRigidDynamicsWorld::reinitialize(btScalar timeStep)
|
||||
{
|
||||
m_internalTime += timeStep;
|
||||
m_deformableBodySolver->reinitialize(m_softBodies);
|
||||
m_deformableBodySolver->reinitialize(m_softBodies, timeStep);
|
||||
btDispatcherInfo& dispatchInfo = btMultiBodyDynamicsWorld::getDispatchInfo();
|
||||
dispatchInfo.m_timeStep = timeStep;
|
||||
dispatchInfo.m_stepCount = 0;
|
||||
|
||||
Reference in New Issue
Block a user