From 1bd0eee0fff3b30586d032973cfc58a77ecb0fe8 Mon Sep 17 00:00:00 2001 From: Xuchen Han Date: Sun, 3 Nov 2019 12:44:45 -0800 Subject: [PATCH] fix indexing bug in deformable sleeping --- src/BulletSoftBody/btDeformableBackwardEulerObjective.cpp | 1 + src/BulletSoftBody/btDeformableBodySolver.cpp | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/BulletSoftBody/btDeformableBackwardEulerObjective.cpp b/src/BulletSoftBody/btDeformableBackwardEulerObjective.cpp index fee353a60..1b247641a 100644 --- a/src/BulletSoftBody/btDeformableBackwardEulerObjective.cpp +++ b/src/BulletSoftBody/btDeformableBackwardEulerObjective.cpp @@ -103,6 +103,7 @@ void btDeformableBackwardEulerObjective::applyForce(TVStack& force, bool setZero btSoftBody* psb = m_softBodies[i]; if (!psb->isActive()) { + counter += psb->m_nodes.size(); continue; } for (int j = 0; j < psb->m_nodes.size(); ++j) diff --git a/src/BulletSoftBody/btDeformableBodySolver.cpp b/src/BulletSoftBody/btDeformableBodySolver.cpp index 9af8e3f77..0fb18080f 100644 --- a/src/BulletSoftBody/btDeformableBodySolver.cpp +++ b/src/BulletSoftBody/btDeformableBodySolver.cpp @@ -251,6 +251,7 @@ void btDeformableBodySolver::updateVelocity() psb->m_maxSpeedSquared = 0; if (!psb->isActive()) { + counter += psb->m_nodes.size(); continue; } for (int j = 0; j < psb->m_nodes.size(); ++j) @@ -275,6 +276,7 @@ void btDeformableBodySolver::updateTempPosition() btSoftBody* psb = m_softBodies[i]; if (!psb->isActive()) { + counter += psb->m_nodes.size(); continue; } for (int j = 0; j < psb->m_nodes.size(); ++j) @@ -307,6 +309,7 @@ void btDeformableBodySolver::setupDeformableSolve(bool implicit) btSoftBody* psb = m_softBodies[i]; if (!psb->isActive()) { + counter += psb->m_nodes.size(); continue; } for (int j = 0; j < psb->m_nodes.size(); ++j)